執行緒 互斥鎖 Lock及fork建立子程序

2022-06-19 11:45:12 字數 1394 閱讀 1624

"""

建立鎖 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...