多執行緒(十一)執行緒安全介紹

2021-09-17 18:54:29 字數 1204 閱讀 8845

當多執行緒同時共享,同乙個全域性變數或靜態變數,做寫的操作時,可能會發生資料資料衝突問題。但是做讀的操作時是不會發生資料衝突問題

需求如下:100張車票 ,有兩個視窗同時搶火車票,請使用多執行緒模擬搶票效果。

package com.zuojie;

/** * @author:zuojie

*/public class threadtrain implements runnable catch (interruptedexception e)

system.out.println(thread.currentthread().getname()+",**第"+(100-count+1)+"張票");

count--;}}

}

package com.zuojie;

/** * 什麼是執行緒不安全

* 當多個執行緒同時操作乙個共享的全域性變數,全域性變數可能受到其他執行緒的干擾

* 功能描述:(模擬線程不安全問題)

/** * 什麼是執行緒不安全

* 當多個執行緒同時操作乙個共享的全域性變數,全域性變數可能受到其他執行緒的干擾

* 功能描述:(模擬線程不安全問題)

十一 執行緒同步

前面完成了多執行緒之後,那麼肯定會涉及到執行緒的同步問題。因為執行緒的執行是隨機的,亂序的。雖然我們這個小kernel實現的排程器演算法比較簡陋,它的隨機性沒那麼強,但是每次進行執行緒切換的時候,還是有可能產生問題。並且問題已經產生了。int main void return0 void k thr...

多執行緒 執行緒安全

原因 當多個執行緒同時共享,同乙個全域性變數或靜態變數。做寫的操作時,可能發生資料衝突問題,也就是執行緒安全問題。但是做讀操作是不會發生資料衝突問題。解決方案 方式一 內建鎖synchronized synchronized保證執行緒原子性,當執行緒進入方法的時候,自動獲取鎖,一旦鎖被其它執行緒獲取...

多執行緒 執行緒安全

public class unsafethread t.start while thread.activecount 1 system.out.println sum 1 從主記憶體中講sum變數複製到執行緒的工作記憶體 2 在工作記憶體中修改變數 1操作 3 將sum變數從執行緒的工作記憶體寫回到...