做爰高潮a片〈毛片〉,尤物av天堂一区二区在线观看,一本久久A久久精品VR综合,添女人荫蒂全部过程av

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

Python多進(jìn)程同步Lock、Semaphore、Event實(shí)例

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:40:46
文檔

Python多進(jìn)程同步Lock、Semaphore、Event實(shí)例

Python多進(jìn)程同步Lock、Semaphore、Event實(shí)例:同步的方法基本與多線程相同。 1) Lock 當(dāng)多個(gè)進(jìn)程需要訪問共享資源的時(shí)候,Lock可以用來避免訪問的沖突。 代碼如下: import multiprocessing import sys def worker_with(lock, f): with lock: fs = open(f,a+) fs.
推薦度:
導(dǎo)讀Python多進(jìn)程同步Lock、Semaphore、Event實(shí)例:同步的方法基本與多線程相同。 1) Lock 當(dāng)多個(gè)進(jìn)程需要訪問共享資源的時(shí)候,Lock可以用來避免訪問的沖突。 代碼如下: import multiprocessing import sys def worker_with(lock, f): with lock: fs = open(f,a+) fs.

同步的方法基本與多線程相同。

1) Lock

當(dāng)多個(gè)進(jìn)程需要訪問共享資源的時(shí)候,Lock可以用來避免訪問的沖突。

代碼如下:


import multiprocessing
import sys

def worker_with(lock, f):
with lock:
fs = open(f,"a+")
fs.write('Lock acquired via with\n')
fs.close()

def worker_no_with(lock, f):
lock.acquire()
try:
fs = open(f,"a+")
fs.write('Lock acquired directly\n')
fs.close()
finally:
lock.release()

if __name__ == "__main__":

f = "file.txt"

lock = multiprocessing.Lock()
w = multiprocessing.Process(target=worker_with, args=(lock, f))
nw = multiprocessing.Process(target=worker_no_with, args=(lock, f))

w.start()
nw.start()

w.join()
nw.join()

在上面的例子中,如果兩個(gè)進(jìn)程沒有使用lock來同步,則他們對(duì)同一個(gè)文件的寫操作可能會(huì)出現(xiàn)混亂。

2)Semaphore

Semaphore用來控制對(duì)共享資源的訪問數(shù)量,例如池的最大連接數(shù)。

代碼如下:


import multiprocessing
import time

def worker(s,i):
s.acquire()
print(multiprocessing.current_process().name + " acquire")
time.sleep(i)
print(multiprocessing.current_process().name + " release")
s.release()

if __name__ == "__main__":

s = multiprocessing.Semaphore(2)
for i in range(5):
p = multiprocessing.Process(target=worker, args=(s,i*2))
p.start()

上面的實(shí)例中使用semaphore限制了最多有2個(gè)進(jìn)程同時(shí)執(zhí)行。

3)Event

Event用來實(shí)現(xiàn)進(jìn)程間同步通信。

代碼如下:


import multiprocessing
import time

def wait_for_event(e):
"""Wait for the event to be set before doing anything"""
print ('wait_for_event: starting')
e.wait()
print ('wait_for_event: e.is_set()->' + str(e.is_set()))

def wait_for_event_timeout(e, t):
"""Wait t seconds and then timeout"""
print ('wait_for_event_timeout: starting')
e.wait(t)
print ('wait_for_event_timeout: e.is_set()->' + str(e.is_set()))


if __name__ == '__main__':
e = multiprocessing.Event()
w1 = multiprocessing.Process(name='block',
target=wait_for_event,
args=(e,))
w1.start()

w2 = multiprocessing.Process(name='non-block',
target=wait_for_event_timeout,
args=(e, 2))
w2.start()

time.sleep(3)
e.set()
print ('main: event is set')

#the output is:
#wait_for_event_timeout: starting
#wait_for_event: starting
#wait_for_event_timeout: e.is_set()->False
#main: event is set
#wait_for_event: e.is_set()->True

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Python多進(jìn)程同步Lock、Semaphore、Event實(shí)例

Python多進(jìn)程同步Lock、Semaphore、Event實(shí)例:同步的方法基本與多線程相同。 1) Lock 當(dāng)多個(gè)進(jìn)程需要訪問共享資源的時(shí)候,Lock可以用來避免訪問的沖突。 代碼如下: import multiprocessing import sys def worker_with(lock, f): with lock: fs = open(f,a+) fs.
推薦度:
標(biāo)簽: 同步 例子 event
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 申扎县| 饶河县| 蛟河市| 丰顺县| 鄄城县| 汤原县| 博客| 明光市| 平乡县| 济阳县| 九江县| 陵川县| 天津市| 永清县| 沾化县| 绥阳县| 衡山县| 三门峡市| 将乐县| 遂平县| 隆化县| 浪卡子县| 沅江市| 南靖县| 永登县| 潮州市| 海盐县| 铁岭县| 阿瓦提县| 鄯善县| 馆陶县| 长春市| 金沙县| 阳信县| 镇远县| 平阳县| 左贡县| 平顶山市| 甘德县| 商水县| 庄浪县|