【python】Concurrent programming

【python】Concurrent programming,第1张

并发编程 一、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)

if __name__ == "__main__":
    for item in range(3):
        p=MyProcess(name="进程==%s"%item,delay=1,count=5)
        p.start()
        

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/794364.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存