Python 同步和互斥

2022-03-08 09:38:32 字數 670 閱讀 9572

from multiprocessing import event,process

from time import sleep

def wait_event():

print("process1也想操作臨界區,但是要阻塞等待主程序")

e.wait()

print("主程序操作完了,到我了",e.is_set())#true

def wait_event_timeout():

print("process2也想操作臨界區,但是要阻塞等待主程序")

e.wait(2)

# e.wait()

print("我不等了",e.is_set())#false

e = event()

p1 = process(name = "block",target = wait_event)

p2 = process(name = "non-block",target = wait_event_timeout)

p1.start()

p2.start()

print("假設正在忙碌的操作臨界資源")

sleep(3)

e.set()

print("主程序操作完了,開放臨界區")

p1.join()

p2.join()

互斥和同步

1.原子操作 乙個和多個指令的序列,對外是不可分的,即沒有程序可以干預此操作。2.臨界區 是段 在這段 中程序將訪問共享資源,將會產生競爭,所以只能在乙個程序中執行。3.死鎖 兩個或者兩個以上程序都在等待其他程序做完某事,此時都處於等待狀態,產生死鎖。4.活鎖 兩個或者兩個以上程序為響應其他程序中的...

同步和互斥

臨界資源 對多個程序或者執行緒都可見的資源,容易造成爭奪的資源,稱之為臨界資源。臨界資源可能會造成程式執行的混亂。臨界區 對臨界資源進行操作的 區域稱之為臨界區,指的是一段執行 解決資源爭奪問題 同步或者互斥 同步 同步是一種合作關係,為了完成某種任務而建立的多個程序或者執行緒之間的協調呼叫,次序等...

同步和互斥

互斥 就是指在不同程式之間的若干程式片段,如果其中一片片段執行了,那麼其他程式就不能再執行這片片段,必須要等執行這個片段的程式執行完畢才能使用 解決的話使用 鎖 這個概念來解決同步 不同的程式必須按照不同的次序來執行 解決的話使用乙個陣列,pv原語進行解決 p代表的含義是減少1,如果執行了p語句之後...