栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【python】Concurrent programming

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【python】Concurrent programming

并发编程 一、multiprocessing

bilibili 李兴华编程训练营

# coding:UTF-8
import multiprocessing
main_pid=multiprocessing.current_process().pid
main_pname=multiprocessing.current_process().name
print(main_pid,main_pname)
import multiprocessing
import time

cpu_core_count = multiprocessing.cpu_count()
print('{} 被执行了四次=主进程+3个子进程'.format(cpu_core_count))

class ProcessMonitor():
    def __init__(self):
        self.main_pid = multiprocessing.current_process().pid
        self.main_pname = multiprocessing.current_process().name

    def main(self):
        print("【0】",self.main_pid,self.main_pname)
        for item in range(3):
            process = multiprocessing.Process(target=worker, args=(1, 5),
             			name="WorkerProcess==%s" % item)
            process.start()

def worker(delay,count):
    for num in range(count):
        pid=multiprocessing.current_process().pid
        pname=multiprocessing.current_process().name
        print("[{}] 进程ID:{} 进程名称:{} ".format(num+1,pid,pname))
        time.sleep(delay)

if __name__ == '__main__':
    pmonitor=ProcessMonitor()
    pmonitor.main()
    print("每次执行顺序不同 产生粘包")

 coding:UTF-8
import multiprocessing,time

class MyProcess(multiprocessing.Process):
    def __init__(self,name,delay,count):
        super().__init__(name=name)
        self.__delay=delay
        self.__count=count
    def run(self):
        for i in range(self.__count):
            pid=multiprocessing.current_process().pid
            pname=multiprocessing.current_process().name
            print("[{}] 进程ID:{} 进程名称:{} ".format(i+1,pid,pname))
            time.sleep(self.__delay)

def main():
    for item in range(3):
        process=MyProcess(
            name="Yootk进程==%s"%item,delay=1,count=10)
        process.start() #不是使用run()方法但会自动调用run()

if __name__ == "__main__":
    for item in range(3):
        p=MyProcess(name="进程==%s"%item,delay=1,count=5)
        p.start()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/849725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号