java多线程

线程生命周期的5种状态

新建(new)、就绪(runnalbe)、运行(running)、阻塞(blocked)、死亡(dead)。

新建:使用new创建一个线程对象,此时线程为新建状态。

就绪:调用线程对象的start()方法线程为就绪状态。

运行:处于就绪状态的线程获得cup,开始执行,为运行状态。

阻塞:人为暂停线程执行或线程为等待获取其它资源,让出cpu,为阻塞状态。

死亡:线程执行完毕,此时为死亡状态。

线程进入阻塞状态的事件

1、线程调用sleep方法放弃cpu资源

2、线程等待IO(如请求网络、读写文件等)

3、线程等待获取一个同步监视器

4、线程等待某个通知(notify)

5、调用线程对象的suspend方法将线程挂起

线程控制

这里可以将线程简单理解为并行执行的多个方法

1、当前线程等待另一线程完成(join)

2、线程睡眠(sleep)让线程暂停一段时间,睡眠的线程处于阻塞状态。

3、线程让步(yield)让线程暂停一下,不会让出cpu,线程状态转为就绪状态,等待线程重新调度,如果没有高优先级的线程,该线程可以继续执行。

4、改变线程优先级

5、设为后台(守护)线程

线程同步(线程同步(官方文档翻译)

在多线程环境下,只允许一个线程对竞态资源操作。

实现方法:

1、通过同步代码块或同步方法设置同步监视器。

2、通过同步锁加锁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值