java学习part25多线程

132-多线程-程序、进程、线程与并行、并发的概念_哔哩哔哩_bilibili

 1.概念

java学习part25多线程_第1张图片

2.共享内容

只有线程间能通信,进程之间不共享内容。

java学习part25多线程_第2张图片

java学习part25多线程_第3张图片

java学习part25多线程_第4张图片 

3.继承thread的多线程

相当于golang里先写一个线程函数run(),子类对象调用start()相当于go关键字

相当于go run()

java学习part25多线程_第5张图片

package thread;

//继承并且重写run
class PrintNumber extends Thread{
    @Override
    public void run() {
        for(int i=1;i < 100;i++){
            if(i%2==0){
                System.out.println(i);
            }
        }


    }
}

//多线程
//创建对象调用start()
public class EvenNumTest{
    public static void main(String[] args) {
        PrintNumber printNumber = new PrintNumber();
        printNumber.start();
        PrintNumber printNumber1 = new PrintNumber();
        printNumber1.start();
        for(int i=1;i < 100;i++){
            if(i%2==0){
                System.out.println(i + "aaa");
            }
        }


    }

}

tips:不能直接调用run(),必须start(),直接调run()是单线程,start()里实现了多线程

java学习part25多线程_第6张图片

4.实现runnable接口来多线程

前面都一样,因为你没法写start()方法,所以把你写的类赋给thread,然后用thread实例start()开启线程

java学习part25多线程_第7张图片

java学习part25多线程_第8张图片

5.常用函数

5.1构造器

java学习part25多线程_第9张图片

对于指定线程名的线程

java学习part25多线程_第10张图片

java学习part25多线程_第11张图片

5.2功能函数

java学习part25多线程_第12张图片

java学习part25多线程_第13张图片

java学习part25多线程_第14张图片

6.生命周期

 jdk5.0之前

java学习part25多线程_第15张图片

 jdk5.0之后

java学习part25多线程_第16张图片

你可能感兴趣的:(java,java,学习,开发语言)