python多執行緒實現

2022-06-08 10:03:10 字數 2465 閱讀 4689

'''

資料夾命名不能用官方已有的模組名比如threading.py test.py等等都會報錯!!!

'''from multiprocessing import process

import os

# 子程序要執行的**

def run_proc(name):

print('run child process %s (%s)...' % (name, os.getpid()))

#乙個程序的建立(記憶體對映)無非是 演算法(引數1:func)+資料(引數2:函式入參)

if __name__=='__main__':#程式入口開始執行就產生了主程序,如果不引入多程序建立子程序,整個程式執行過程只有在執行入口產生的1個父程序

print('parent process %s.' % os.getpid())#用來獲取主程序的程序id:266528

#可以看出父程序是持續到程式結束的

p = process(target=run_proc, args=('test',))#例項化程序p,呼叫run_proc函式,傳入引數物件args,開闢了子程序

print('child process will start.')#id:266540,而子程序在程式執行過程中經歷了建立和銷毀.

p.start()#程序準備就緒,程序在此行之後就自動開始執行了

print("-------------")

p.join()#等待程序p執行結束!!!(程序同步)

#注釋掉p.join(),可能會出現程序p沒有執行完畢,然後父程序266528繼續執行了.會出現先print出"child process end",然後子程序才執行出 print "run child process %s (%s)..."

print('child process end.')

print('parent process %s.' % os.getpid())#id:266528

from multiprocessing import process

import random,time

def do_task(task):

print('我正在做{}'.format(task))

#time.sleep(random.randint(1,3))

def write_task(task):

print('我正在寫{}'.format(task))

#time.sleep(random.randint(1,3))

if __name__ == "__main__":

p1 = process(target=do_task,args=('ppt',))

p2 = process(target=write_task,args=('sql',))

p1.start()

p2.start()

import multiprocessing

import random,time,os

def do_task(task):

print('我正在做{}'.format(task))

#print(os.getpid())

time.sleep(random.randint(1,3))

def write_task(task):

print('我正在寫{}'.format(task))

#print(os.getpid())

time.sleep(random.randint(1,3))

if __name__ == "__main__":

func_list=[do_task,write_task]

args_list=["ppt","sql"]#如果是單個子程序的建立,函式的傳參只接受元組(a,)形式

pool=multiprocessing.pool(2)

for func,arg in func_list,args_list:

print('waiting for all subprocesses done...')

pool.close()

pool.join() #呼叫join之前,一定要先呼叫close() 函式,否則會出錯

print('all subprocesses done')

import time, random

from threading import thread

#threading.py--模組

#class func----thread

def do_chioce(task):

print('我正在{}'.format(task))

time.sleep(random.randint(1,3))

if __name__ == "__main__":

t = thread(target=do_chioce,args=('選ppt模板',))#thread類

t.start()

python多執行緒實現

coding utf 8 import threading 匯入執行緒模組 from time import ctime,sleep 建立執行緒事件 defeat print 我在吃東西 s ctime 執行緒組 threads 建立執行緒數量 for x in range 10 t1 thread...

python多執行緒執行緒池實現

在python中多執行緒可以使用threading來實現,但實際使用時考慮效能等,大多會使用到執行緒池,下面就是基於python2和python3來說明下執行緒池的使用。import time def testthread fl time.sleep 1 print print fl return ...

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...