'''
資料夾命名不能用官方已有的模組名比如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,如果是多程序則去掉...