狂神說《多執行緒》賣早餐設定互斥鎖

2022-09-14 13:33:11 字數 1355 閱讀 8720

首先我先調整一下**

this.breakfast的加法不寫在一起,單獨成立一行,出現重複票與-1的情況更容易,(採用方式二:實現runable介面的情況下)由於執行緒對共享資源(也就是早餐數)的消耗十分短暫,

*************************說明一點:每次執行的結果是不一樣的,我常看到彈幕裡說龜兔賽跑的事,乙個結果多執行幾次,效果是不一樣的!*******************************************

package

com.cy.thread;

/*** 初識併發問題,三個視窗共賣10分早餐 */

import

com.sun.org.apache.xerces.internal.util.synchronizedsymboltable;

/*** 本機i5 6400只有4核心4執行緒

* 建立執行緒方式2:實現runable介面,執行執行緒需丟入runable的實現類 */

public

class testthread3 implements

runnable

}public

static

void

main(string args)

//不同步,可能同時賣同乙份早餐,有可能最後還有一張票時候三者都操作導致得到0與-1

public

void

salebreakfast1()

/*** 模擬延遲

*/try

catch

(interruptedexception e)

system.out.println(thread.currentthread().getname()+"在賣早餐---》"+(this

.breakfast));

/*** 這裡不寫成breakfast++,而是單獨一行是為了重現執行緒不同步導致的breakfast被重複售賣

* 因為你在做減法時,其他執行緒因為runable共享資源的原因就可能已經開始賣早餐了,因此得設定執行緒鎖(互斥鎖)

*/this.breakfast++;}}

//互斥鎖

public

void

salebreakfast2()

catch

(interruptedexception e)

if (this.breakfast > 15)

else}}

}}

狂神說 SpringBoot筆記

狂神說springboot01 hello,world!狂神說springboot02 執行原理初探 狂神說springboot03 yaml配置注入 狂神說springboot04 jsr303資料校驗及多環境切換 狂神說springboot05 自動配置原理 狂神說springboot06 自定...

Ngork筆記(狂神說)

問題 自己電腦上專案,如何讓別人訪問?ngrok 是乙個反向 通過在公共的端點和本地執行的 web 伺服器之間建立乙個安全的通道。ngrok 可捕獲和分析所有通道上的流量,便於後期分析和重放。反向 在計算機網路中是 伺服器的一種。伺服器根據客戶端的請求,從其關係的一組或多組後端伺服器 如web伺服器...

狂神說 GIT課程筆記

工作區域 git本地有三個工作區域 工作目錄 working directory 暫存區 stage index 資源庫 repository git directory 工作流程 在工作目錄中新增 修改檔案 將需要進行版本管理的檔案放入暫存區域 將暫存區域的檔案提交到git倉庫 本地倉庫搭建 建立...