python的多程序實現的四種方式

2021-10-01 04:18:33 字數 2264 閱讀 4047

"""

pid=os.fork()

1.只用在unix系統中有效,windows系統中無效

2.fork函式呼叫一次,返回兩次:在父程序中返回值為子程序id,在子程序中返回值為0

"""import os

pid=os.fork()

if pid==0:

print("執行子程序,子程序pid=,父程序ppid=".format(pid=os.getpid(),ppid=os.getppid()))

else:

print("執行父程序,子程序pid=,父程序ppid=".format(pid=pid,ppid=os.getpid()))

# -*- coding:utf-8 -*-

"""process常用屬性與方法:

name:程序名

pid:程序id

run(),自定義子類時覆寫

start(),開啟程序

join(timeout=none),阻塞程序

terminate(),終止程序

is_alive(),判斷程序是否存活

"""import os,time

from multiprocessing import process

def worker():

print("子程序執行中》 pid=,ppid=".format(os.getpid(),os.getppid()))

time.sleep(2)

print("子程序終止》 pid=".format(os.getpid()))

def main():

print("主程序執行中》 pid=".format(os.getpid()))

ps=# 建立子程序例項

for i in range(2):

p=process(target=worker,name="worker"+str(i),args=())

# 開啟程序

for i in range(2):

ps[i].start()

# 阻塞程序

for i in range(2):

ps[i].join()

print("主程序終止")

if __name__ == '__main__':

main()

import os,time

from multiprocessing import process

class myprocess(process):

def __init__(self):

process.__init__(self)

def run(self):

print("子程序開始》 pid=,ppid=".format(os.getpid(),os.getppid()))

time.sleep(2)

print("子程序終止》 pid={}".format(os.getpid()))

def main():

print("主程序開始》 pid={}".format(os.getpid()))

myp=myprocess()

myp.start()

# myp.join()

print("主程序終止")

if __name__ == '__main__':

main()

import os,time

from multiprocessing import pool

def worker(arg):

print("子程序開始執行》 pid={},ppid={},編號{}".format(os.getpid(),os.getppid(),arg))

time.sleep(0.5)

print("子程序終止》 pid={},ppid={},編號{}".format(os.getpid(),os.getppid(),arg))

def main():

print("主程序開始執行》 pid={}".format(os.getpid()))

ps=pool(5)

for i in range(10):

# 關閉程序池,停止接受其它程序

ps.close()

# 阻塞程序

ps.join()

print("主程序終止")

if __name__ == '__main__':

main()

Python多程序 實現多程序的幾種方式

coding utf 8 pid os.fork 1.只用在unix系統中有效,windows系統中無效 2.fork函式呼叫一次,返回兩次 在父程序中返回值為子程序id,在子程序中返回值為0 import os pid os.fork if pid 0 print 執行子程序,子程序pid 父程序...

程序排程的四種演算法

作業系統 程序排程的四種演算法 作業由作業流進入輸入井然後觸發作業排程選擇作業進入主存區,建立程序之後,系統會對程序控制塊進行分類鏈入佇列,在就緒佇列中的程序會觸發程序排程,選擇合適的程序占用cpu資源。程序排程會根據合適的演算法進行排程,下面簡單的說一下四種常見的演算法。1.先到先服務排程演算法 ...

Python實現多程序

python可以實現多執行緒,但是因為global interpreter lock gil python的多執行緒只能使用乙個cpu核心,即乙個時間只有乙個執行緒在執行,多執行緒只是不同執行緒之間的切換,對多核cpu來說,就是巨大的浪費。如4核cpu,實際上只利用了乙個核,cpu利用率只有25 要...