"""建立鎖 mutex = threading.lock()
鎖定 mutex.acquire([blocking])
當blocking為true時,當前執行緒會阻塞,直到獲取到這個鎖為止
預設為true
當blocking為false時,當前執行緒不會阻塞
釋放 mutex.release()
"""from threading import
thread,lock
g_num =0
deftest1():
global
g_num
for i in range(100000):
mutexflag = mutex.acquire(true)#
通過全域性變數進行呼叫函式
#true會發生阻塞,直到結束得到鎖為止
ifmutexflag:
g_num += 1mutex.release()
print("
test1--g_num = %d
"%(g_num))
deftest2():
global
g_num
for i in range(100000):
mutexflag =mutex.acquire(true)
ifmutexflag:
g_num += 1mutex.release()
print("
----test2---g_num = %d
"%(g_num))
mutex =lock()
p1 = thread(target=test1,)
#開始程序
p1.start()
p2 = thread(target=test2,)
p2.start()
print("
----g_num = %d---
"%(g_num))
fork建立子程序
importos#fork()在windows下不可用
pid = os.fork()#
返回兩個值
#作業系統建立乙個新的子程序,複製父程序的資訊到子程序中
#然後父程序和子程序都會得到乙個返回值,子程序為0,父程序為子程序的id號
if pid ==0:
print("
哈哈1"
)else
:
print("
哈哈2")
2020-05-07
多執行緒之互斥量(mutex) 鎖(lock)
private int counter 1 std condition variable cv1 std condition variable cv2 std mutex g mutex 多執行緒之互斥量 mutex 鎖 lock,unlock,lock guard g mutex.lock g m...
lock執行緒鎖
lock 實現提供了比使用 synchronized 方法和語句可獲得的更廣泛的鎖定操作。lock鎖可以顯示的獲取鎖物件和釋放鎖,而synchorized則是隱式的。不使用塊結構鎖就失去了使用 synchronized 方法和語句時會出現的鎖自動釋放功能。lock 介面的實現允許鎖在不同的作用範圍內...
執行緒鎖Lock
from threading import thread,lock import time deffunc global n n 1n 10t list for i in range 10 t thread target func,t.start for t in t list t.join pri...