多线程

创建线程的三种方法:

1 继承Thread类 (extends)

2 实现Runnable接口 (implemments) :new Thread(Runnable,name).start()

3 实现Callable接口  (implemments)

(一般使用Runnable 、Callable接口来创建多线程,因为线程类还可以继承其他类)


线程的生命周期(五个状态):

新建(New):new Thread()
就绪(Runnable) :Thread().start()
运行(Running) :执行线程体的run()方法
阻塞(Blocked) :sleep() 、yield()
死亡(Dead):isAlive() 判断线程是否处于死亡或者新建状态


注:若不调用线程的start()方法,直接调用run(),则系统会把线程对象当作一个普通对象,而run()方法也是一个普通方法,而不是线程的执行体了。


线程的休眠(即从运行状态退出到阻塞或者就绪态):

sleep()  : 线程休眠 ,给其他线程执行。
yield()  :线程让步给相同的优先级或者更高优先级的线程。


改变线程的优先级(1-10): setPriority(int newPriority)   MAX_PRIORITY(10)、MIN_PRIORITY(1)、NORM_PRIORITY(5)


设置后台线程:setDaemon(true),主线程main默认为前台线程,其创建的子线程默认为前台线程,后台线程创建的子线程默认是后台线程。

后台线程的特征:如果所有前台线程死亡,后台线程将自动死亡。所以又称为守护线程或精灵线程。


join():使用此方法让一个线程等待另一个线程完成,当在某线程中调用其它线程的join()方法时,调用线程将阻塞,直到被调用线程执行完毕为止。谁调用谁阻塞,被调用的进入运行态。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值