多執行緒共享變數

2021-07-22 04:54:42 字數 542 閱讀 7452

題目如下:

設計4個執行緒,其中兩個執行緒每次對j增加1,另外兩個執行緒對j每次減少1。

如果每個執行緒執行的**相同 ,可以使用同乙個runnable物件,這樣在不同的執行緒中只需要把這個runnable物件傳到裡面去即可,因為runnable物件的run方法天熱原子性,不可能run方法被打斷,乙個run方法執行完後可能會切換到另乙個執行緒的run方法 ,所以可以實現執行緒同步,例如買票程式火車票這樣的程式可以這樣設計

這是賣票程式的例子

接下來說如果要實現的執行緒**不同,比如上面的題目 有的要加有的要減,這個時候我們需要有兩個runnable物件,在run方法裡面對同乙個物件執行不同的操作 如下

如上所示 我們的資料物件只有乙個data1,但是我們的runnable物件有兩個,操作同乙個物件,乙個對它加乙個對它減

多執行緒共享變數 多執行緒共享全域性變數

1.多執行緒的執行順序是無序的 像2個人賽跑,乙個先跑乙個後跑,但根據每個人跑的速度不一樣,跑一半,二者可能跑在一起去了。2.又因為多執行緒是共享乙個全域性變數的,就導致資料容易被弄髒 假如老闆讓兩個員工寫兩個主題ppt,若這兩個人沒商量好,都做了同乙個主題的ppt,導致不但速度很慢,且這個ppt有...

多執行緒共享變數

from threading import thread,lock global num 0 def func1 global global num 全域性變數 for i in range 1000000 lock.acquire 兩個執行緒會最開始搶這個鎖,拿到鎖就會處於關鎖,執行後面的程式,其...

Python 多執行緒 共享變數

僅用學習參考 coding utf 8 from threading import thread import time g num 100 def work1 global g num for i in range 3 g num 1 print in work1,g num is d g num...