【搞懂Java多线程之一】多线程相关概念,线程生命周期以及线程创

楼主决定要好好地把Java的多线程给看一下,所以特地来写下博客,内容大部分都是摘抄自网上看到的资料或者书籍,能给出链接的我会给出链接。嗯,希望大家跟楼主一起抱团,,加油加油↖(^ω^)↗也欢迎关注楼楼的个人博客主页。

1.多线程相关概念

程序:为了完成特定任务,用某种语言编写的一组指令集合。

进程:运行中的程序,系统跳读和资源分配的一个独立单位,操作系统会为每一个进程分配一段内存空间。

线程:比进程更小的执行单位,每一个进程可能有多个线程,线程需要放到一个进程中才能执行。线程由程序负责管理,而进程由系统进行调度。

多线程:并行执行多条指令,将CPU时间片按照调度算法分配给各个线程,实际上是分时执行,知识切换时间短,用户感觉在同时。

2.线程的生命周期

如图所示:

3.线程的创建

Java中线程创建有两种方式:继承Thread类创建、实现Runnable接口

创建流程

代码演示

方法一:继承Thread类来创建

package net.mindview.util;//第一步、继承Thread类class MyThreadRunning extends Thread{//构造函数public MyThreadRunning() {super("My Thread");//System.out.println("新建一个线程" + getName());}//第二步、重写run方法public void run() {for (int i = 0; i <= 3; i++) {System.out.println("新建一个线程" + getName()+i);try {sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public class MyThread {public static void main(String[] args) {//第三步、实例化自定义的线程类对象MyThreadRunning mtr = new MyThreadRunning();//第四步、调用start方法从而启动run方法mtr.start();}}

运行结果:

新建一个线程My Thread0新建一个线程My Thread1新建一个线程My Thread2新建一个线程My Thread3

方法二:实现Runnable接口实现

package net.mindview.util;//第一步、实现Runnable接口class MyThreadRunning implements Runnable{//第二步、重写run方法public void run() {for (int i = 0; i <= 3; i++) {System.out.println("新建一个线程" + Thread.currentThread().getName() + i);try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public class MyThread {public static void main(String[] args) {//第三步、实例化自定义的线程类对象MyThreadRunning mtr = new MyThreadRunning();//第四步、实例化一个Thread类对象并将自定义的线程类对象作为参数传入,后面一个参数为线程名Thread thread = new Thread(mtr, "My Thread");//第五步、调用start方法启动线程thread.start();}}

运行结果:

新建一个线程My Thread0新建一个线程My Thread1新建一个线程My Thread2新建一个线程My Thread3

两种方法的对比

如果是继承Thread类,那么该类就不能继承其他类了;

实现Runnable接口,并不影响继承其他类。

总结:这一篇就总结到这里了,怎么样,东西应该大都懂了吧?下篇继续哦,内容是多线程的控制、线程的优先级和线程的调度。加油加油加油↖(^ω^)↗

参考链接:

如果前世五百次眸回,才换来今生的擦肩而过。

【搞懂Java多线程之一】多线程相关概念,线程生命周期以及线程创

相关文章:

你感兴趣的文章:

标签云: