多线程 状态 锁 的理解

4 篇文章 0 订阅
3 篇文章 0 订阅

1、线程状态有:a、创建状态;b、就绪状态;c、运行状态;d、等待状态;e、阻塞状态;f、结束状态

其中等待状态和阻塞状态理解:当前线程调用了wait()、sleep()、join()等方法的时候会进入到等待状态。进入等待状态的线程没有机会获取cpu的使用权,只有执行了唤醒操作或者定时时间(执行了wait(时间)、sleep(时间)进入等待状态的)到了,等待状态的线程就会进入就绪状态,才有机会获取cpu的使用权。

阻塞状态:因为多个线程共同获取同一个资源,为了避免线程不安全使用了锁机制,比如使用synchronize或者lock。锁机制可以保证一个资源只能同时被一个线程使用。

等待状态的线程没有机会获得cpu使用权,阻塞状态的线程是有机会获得cpu使用权,但是多个线程只能同时有一个线程获得锁资源。锁机制可以资源的线程安全性,等待唤醒机制(等待状态--就绪状态切换)可以避免cpu的不必要的浪费(比如配合锁机制和条件,只有满足某些条件的线程才能有机会获取cpu使用权,这样避免了所有不满足条件的线程和满足条件的线程都去竞争锁资源和cpu使用权力,浪费cpu的使用权)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值