多线程 状态 锁 的理解

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

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

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

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章