0
点赞
收藏
分享

微信扫一扫

多线程(截止到这里,不想看了)

zhongjh 2022-03-15 阅读 114

在这里插入图片描述

程序,进程,线程

在这里插入图片描述
在这里插入图片描述

JAVA创建多线程

方式1:继承于thread类

1.创建一个继承于Thread类的子类
2.重写Thread类的run()
3.创建Thread类的子类的对象
4.通过此对象调用start()

tips
1.不能通过直接调用run()的方式来启动线程
2.start()方法只能使用一次,即不可以让已经start()的线程再去start(),若要再来个线程,需要创建一个新对象

方式1.1:创建thread类的匿名子类的方式

Thread中的常用方法在这里插入图片描述

方式2:实现Runnable接口的方式

1.创建一个实现了Runnable接口的类
2.实现类去实现Runnalbe接口中的抽象方法:run()
3.创建实现类的对象
4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
5.通过Thread类的对象调用start()

方式1和方式2的区别

开发中:优先选择实现Runnable接口的方式
原因:1.实现的方式没有单继承性的局限性
2.实现的方式更适合来处理多个线程有共享数据的情况
联系:public class Thread implements Runnable
相同点:两种方式都需要重写run(),将线程要执行的逻辑声明在run()中。

线程的优先级

在这里插入图片描述

线程的分类

java线程分为守护线程用户线程
用户线程有主线程等,守护线程有垃圾回收线程等。守护线程依赖于用户线程。

线程的生命周期

在这里插入图片描述

线程的安全问题

用同步的方式解决线程的安全问题
解决方式一:同步代码块

synchronized(同步监视器){
	//需要被同步的代码
}

说明:操作共享数据的代码,即为需要被同步的代码
共享数据:多个 线程共同操作的变量。比如ticket
同步监视器:俗称锁
要求:多个线程必须共用同一把锁

举报

相关推荐

0 条评论