對於計算機來說,有兩種實現多工的方式:並行和併發
程式分配資源的最小單位。
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-jptdps0k-1600777354149)(
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-jxyodjfn-1600777354154)(
import multiprocessing
import time
'''# 建立子程序
sing_process = multiprocess.process(target=sing)
# 啟動子程序
sing_process.start()
'''def dance():
for i in range(3):
print("跳舞")
time.sleep(0.5)
def sing():
for i in range(3):
print("唱歌")
time.sleep(0.5)
if __name__ == "__main__":
print("單程序順序執行")
sing()
dance()
print("多程序")
sing_process = multiprocessing.process(target=sing)
dance_process = multiprocessing.process(target=dance)
sing_process.start()
dance_process.start()
import multiprocessing
import time
'''# 建立子程序 元祖的方式傳遞引數
sing_process = multiprocess.process(target=sing,args=(3,))
# 啟動子程序
sing_process.start()
# 字典的方式傳遞引數
'''def dance(nums,names):
for i in range(nums):
print(names+"跳舞")
time.sleep(0.5)
def sing(nums,names):
for i in range(nums):
print(names+"唱歌")
time.sleep(0.5)
if __name__ == "__main__":
print("多程序")
sing_process = multiprocessing.process(target=sing,args=(5,"小公尺"))
dance_process = multiprocessing.process(target=dance,kwargs=)
sing_process.start()
dance_process.start()
import multiprocessing
import time
import os
'''import os
print("work程序編號",os.getpid())
'''def dance(nums,names):
print("dance程序id:"+str(os.getpid()))
print("dance父程序id:"+str(os.getppid()))
for i in range(nums):
print(names+"跳舞")
time.sleep(0.5)
def sing(nums,names):
print("sing程序id:"+str(os.getpid()))
print("sing程序父id:"+str(os.getppid()))
for i in range(nums):
print(names+"唱歌")
time.sleep(0.5)
if __name__ == "__main__":
print("多程序")
sing_process = multiprocessing.process(target=sing,args=(5,"小公尺"))
dance_process = multiprocessing.process(target=dance,kwargs=)
print("主程序id:"+str(os.getpid()))
sing_process.start()
dance_process.start()
import time
import multiprocessing
def work():
for i in range(10):
print("工作中...")
time.sleep(0.2)
if __name__ == '__main__':
work_process = multiprocessing.process(target=work)
work_process.daemon=true
work_process.start()
# 程式等待1秒
time.sleep(1)
print("程式結束")
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-893o4zdj-1600777354156)(
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-6xmyrd1b-1600777354158)(
執行緒之間的執行是無順序的,取決於cpu的排程
import time
import threading
def task():
time.sleep(1)
# current_thread 獲取當前的執行緒物件
thread = threading.current_thread
print('n')
print(threading)
if __name__ == "__main__":
for i in range(5):
sub_thread = threading.thread(target=task)
sub_thread.start()
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-bxxzrmt1-1600777354160)(
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-hjoovsam-1600777354162)(
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-m8bwp5dp-1600777354163)(
Python實現多程序
python可以實現多執行緒,但是因為global interpreter lock gil python的多執行緒只能使用乙個cpu核心,即乙個時間只有乙個執行緒在執行,多執行緒只是不同執行緒之間的切換,對多核cpu來說,就是巨大的浪費。如4核cpu,實際上只利用了乙個核,cpu利用率只有25 要...
python 實現多程序
方法一 from urllib import request from multiprocessing import process import os def url,kwargs print 當前程序id os.getpid os.getppid os.getpid 獲取當前程序id,os.ge...
Python多程序 實現多程序的幾種方式
coding utf 8 pid os.fork 1.只用在unix系統中有效,windows系統中無效 2.fork函式呼叫一次,返回兩次 在父程序中返回值為子程序id,在子程序中返回值為0 import os pid os.fork if pid 0 print 執行子程序,子程序pid 父程序...