多线程
发布时间:2021-02-06编辑:dyy阅读(819)
多线程的实现方式
1、定义一一个类继承Thread类
2、在类中重写run()方法,run()方法式用来封装线程执行的代码
3、创建对象、启动线程


启动线程时 run()和start()方法的区别
run():封装线程执行的代码,直接调用,相当于普通方法
start():启动线程,然后由jvm调用此线程的run方法
通过setName设置线程名称方法,getName返回此线程的名称

Thread类中设置和获取线程优先级的方法
public final int getPriority():返回此线程的优先级
public final void setPriority(int newPriority):更改线程的优先级
线程默认优先级是:5,线程优先级的范围是:1-10
线程优先级高仅仅表示线程获取的cpu时间片的几率高,但是要在次数比较多,或者多次运行的时候才能看见效果

线程控制
static void sleep (long millis) 使当前正在执行的线程停留(暂停执行)指定的毫秒数

Join()方法优先执行该线程程序,该线程执行完再执行其他线程

setDaemon()
设置守护线程,如果当运行的全部是守护线程时,Java虚拟机将退出主线程执行完了,守护线程也会推出

多线程的实现方式2
实现Runnable接口
在类中重写run()方法
创建类对象
创建Thread类的对象,把类对象作为构造方法的参数
启动线程


多线程实现方案有两种
实现Runnable接口和继承Thread
继承Runnable接口避免了Java单继承局限性
适合多个相同程序的代码去处理同一个资源的情况,把线程和程序的代码、数据有效分离,有效体现了面向对象设计