锁!代码锁
一,代碼鎖
異步?? 并發,各干各的???? (比如:一群人同時上卡車)
同步?? 步調一致的處理????? (比如:一群人排隊上公交車)
多個線程并發讀寫同一個資源的時候會發生“線程并發安全問題”,如果保證多線程同步訪問臨界資源,就可以解決;
?常見的臨界資源:???? 多線程共享實例量
??????????????????????????? 靜態公共變量
使用同步代碼塊解決線程并發安全問題???? synchrenizde(同步監視器){
??? }
同步監視器:1,是一個任意對象的實例;??? 2,是一個多線程之間的互斥的鎖機制
多線程要使用同一個“監視器”對象實現同步互斥
???????? synchronizend(this){
?? }
?如果方法的全部過程需要同步,可以簡單使用?? Synchronized?? 修飾方法;
相當于整個方法的?? synchronized(this)
??????????? 盡量減少同步范圍,提高并發效率
二,多線程(Thread)
?? 線程是最小的運行單位,進程可以包含多個線程;
rum 方法不能參加參數??????? 多線程是同時()執行;
狀態1,new
狀態2,Start---rum?????? rum nable可運行狀態
狀態3,死亡結束(dead)
狀態4,Running? 運行狀態
注釋:普通線程程序員沒辦法干預,由CPU決定
轉載于:https://www.cnblogs.com/haoziwoaini/p/5406451.html
總結
- 上一篇: 从零开始学编程
- 下一篇: 天数怎么换算成月_小时天数换算(小时换算