zoukankan      html  css  js  c++  java
  • Python并发编程之-进程

    一: 进程的基本使用

    • windows系统中开启进程必须在main里 不然会报错
    import multiprocessing
    
    def task(args):
        print(args)
    
    
    if __name__ == '__main__':
        for i in range(10):
            p = multiprocessing.Process(target=task,args=(i,))
            p.start()

    二: 进程间数据不共享

    • 进程
    import multiprocessing
    
    data_list=[]
    
    def task(args):
        data_list.append(args)
        print(data_list)
    
    
    if __name__ == '__main__':
        for i in range(10):
            p = multiprocessing.Process(target=task,args=(i,))
            p.start()
    
    [0]
    [1]
    [3]
    [2]
    [4]
    [5]
    [6]
    [7]
    [8]
    [9]
    • 线程
    import multiprocessing
    import threading
    
    data_list=[]
    
    def task(args):
        data_list.append(args)
        print(data_list)
    
    
    if __name__ == '__main__':
        for i in range(10):
            p = threading.Thread(target=task,args=(i,))
            p.start()
    
    
    [0]
    [0, 1]
    [0, 1, 2]
    [0, 1, 2, 3]
    [0, 1, 2, 3, 4]
    [0, 1, 2, 3, 4, 5]
    [0, 1, 2, 3, 4, 5, 6]
    [0, 1, 2, 3, 4, 5, 6, 7]
    [0, 1, 2, 3, 4, 5, 6, 7, 8]
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    三: 常用方法

    • join等待
    • daemon
    • name
    import multiprocessing
    
    def task(args):
        p = multiprocessing.current_process()
        print(p.name,p.ident) # ident/pid
    
    if __name__ == '__main__':
        for i in range(10):
            p = multiprocessing.Process(target=task,args=(i,))
            p.name = str(i)
            p.start()

    四: 面向对象的方式创建进程

    import multiprocessing
    
    class MyProcess(multiprocessing.Process):
        def run(self):
            print(multiprocessing.current_process())
    
    def run():
        p1 = MyProcess()
        p1.start()
    
    if __name__ == '__main__':
        run()
  • 相关阅读:
    Autofac 依赖注入
    C#高级语法
    @helper
    Spiral Matrix -- LeetCode
    Best Time to Buy and Sell Stock with Cooldown -- LeetCode
    Kth Smallest Element in a Sorted Matrix -- LeetCode
    Number of Connected Components in an Undirected Graph -- LeetCode
    Super Ugly Number -- LeetCode
    Ugly Number II -- LeetCode
    Missing Ranges -- LeetCode
  • 原文地址:https://www.cnblogs.com/wc89/p/11105483.html
Copyright © 2011-2022 走看看