python进程

记录:备忘录。
方式一:fork()

import os
import time

def worker(info):
    while True:
        print(info)
        time.sleep(1)

def main():
    ret = os.fork()
    if ret == 0:
        worker("主进程")
    else:
        worker("子进程")

if __name__ == '__main__':
     print("主进程开始...")
     main()
     print("主进程结束...")

方式二:Process

from multiprocessing import Process
import os

def worker(info):
    print("子进程开始...")
    for i in range(10):
        print("进程%d:%s第%d次执行"%(os.getpid(),info,i))
    print("子进程结束...")

def main():
    p = Process(target=worker, args=("红玲",))
    p.start()
if __name__ == '__main__':
    print("主进程开始...")
    main()
    print("主进程结束...")

方式三:继承Process

from multiprocessing import Process
import os

class MyProcess(Process):
    def run(self):
        print("子进程开始...")
        for i in range(10):
            print("进程号%d:第%d次执行" % (os.getpid(), i))
        print("子进程结束...")

def main():
    p = MyProcess()
    p.start()
if __name__ == '__main__':
     print("主进程开始...")
     main()
     print("主进程结束...")

方式四:进程池Pool同步

from multiprocessing import Pool
import os
import time

def worker(info,num):
    for i in range(10):
        print("进程号%d:%s%d第%d次执行"%(os.getpid(), info,num,i))
        time.sleep(0.5)

def main():
    pool = Pool(3)
    for i in range(10):
        pool.apply(worker, ("红玲",i))
    # 关闭进程池
    pool.close()
    pool.join()
if __name__ == '__main__':
    main()

方式五:进程池Pool异步

from multiprocessing import Pool
import os
import time

def worker(info,num):
    for i in range(10):
        print("进程号%d:%s%d第%d次执行"%(os.getpid(), info,num,i))
        time.sleep(1)

def main():
    pool = Pool(3)
    for i in range(10):
        pool.apply_async(worker, ("红玲",i))
    # 关闭进程池
    print("qqq")
    pool.close()
    pool.join()
if __name__ == '__main__':
    main()

以上,感谢。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值