python多執行緒和多程序

2021-09-25 04:55:20 字數 1206 閱讀 2546

pool

感謝多執行緒和多程序最大的不同在於,多程序中,同乙個變數,各自有乙份拷貝存在於每個程序中,互不影響;而多執行緒中,所有變數都由所有執行緒共享,所以,任何乙個變數都可以被任何乙個執行緒修改,因此,執行緒之間共享資料最大的危險在於多個執行緒同時改乙個變數,把內容給改亂了。

python中,多執行緒並沒有實際使用者,並不能充分利用cpu資源 ,而多程序可以,所有,下面記錄一下多程序的使用

計數器的作用:

如果在主機執行io密集型任務的時候再執行這種型別的程式時,計算機就有很大可能會宕機。這時候就可以為這段程式新增乙個計數器功能,來限制乙個時間點內的執行緒數量。

queue

from multiprocessing import process, queue

import os, time, random

# 寫資料程序執行的**:

def write(q):

print('process to write: %s' % os.getpid())

for value in ['a', 'b', 'c']:

print('put %s to queue...' % value)

q.put(value)

time.sleep(random.random())

# 讀資料程序執行的**:

def read(q):

print('process to read: %s' % os.getpid())

while true:

value = q.get(true)

print('get %s from queue.' % value)

if __name__=='__main__':

# 父程序建立queue,並傳給各個子程序:

q = queue()

pw = process(target=write, args=(q,))

pr = process(target=read, args=(q,))

# 啟動子程序pw,寫入:

pw.start()

# 啟動子程序pr,讀取:

pr.start()

# 等待pw結束:

pw.join()

# pr程序裡是死迴圈,無法等待其結束,只能強行終止:

pr.terminate()

pipe[python爬蟲高階六之多程序的用法](

程序與執行緒

python 多執行緒 和 多程序

單執行緒例子 usr bin python coding utf 8 name danxiancheng.py import time import threading def loop num,sec print loop s start num,time.strftime y m d h m s...

多程序和多執行緒python

coding utf8 import threading import time class mop floor threading.thread def init self super mop floor,self init def run self print 我要拖地了 time.sleep ...

Python 多程序和多執行緒

使用multiprocessing中的process,其中start 代表啟動程序,join 代表等待程序結束再執行後面 程式。from multiprocessing import process from time import time,sleep def func arg time.slee...