zoukankan      html  css  js  c++  java
  • 学习Python3 互斥锁遇到的mac系统遇到的错误 FileNotFoundError: [Errno 2] No such file or directory

    学习Python3 互斥锁遇到的mac系统遇到的错误 FileNotFoundError: [Errno 2] No such file or directory

    mac系统
    python3.4更新后,默认用“spawn”,开启进程,我们要主动指定为“fork”
    spawn:使用此方式启动的进程,只会执行和 target 参数或者 run() 方法相关的代码。Windows 平台只能使用此方法,事实上该平台默认使用的也是该启动方式。相比其他两种方式,此方式启动进程的效率最低。
    fork:使用此方式启动的进程,基本等同于主进程(即主进程拥有的资源,该子进程全都有)。因此,该子进程会从创建位置起,和主进程一样执行程序中的代码。注意,此启动方式仅适用于 UNIX 平台,os.fork() 创建的进程就是采用此方式启动的。
    forserver:使用此方式,程序将会启动一个服务器进程。即当程序每次请求启动新进程时,父进程都会连接到该服务器进程,请求由服务器进程来创建新进程。通过这种方式启动的进程不需要从父进程继承资源。注意,此启动方式只在 UNIX 平台上有效。

    from multiprocessing import Process, Lock
    import time
    import multiprocessing
    
    
    def task(name, mutex):
        with mutex:
            print("%s 1" % name)
            time.sleep(1)
            print("%s 2" % name)
            time.sleep(1)
            print("%s 3" % name)
    
    
    if __name__ == '__main__':
        # 第一种解决办法 
        multiprocessing.set_start_method("fork")
        mutex = Lock()
        for i in range(3):
            p = Process(target=task, args=("子进程%s" % i, mutex))
            p.start()
    
    
    from multiprocessing import Process, Lock
    import time
    
    def task(name, mutex):
        with mutex:
            print("%s 1" % name)
            time.sleep(1)
            print("%s 2" % name)
            time.sleep(1)
            print("%s 3" % name)
    
    
    if __name__ == '__main__':
    
        """
        第二种解决办法
        您需要在其中添加联接。注意,不能保证过程将按您的要求按数字顺序启动。
        您需要在流程开始之前添加一个延迟,以确保按您期望的顺序将其添加到执行队列中。
        """
        processes = []
        mutex = Lock()
        for i in range(3):
            p = Process(target=task, args=('Process %s' % i, mutex))
            processes.append(p)
            p.start()
        for p in processes:
            p.join()
    
    
  • 相关阅读:
    Java:前程似锦的 NIO 2.0
    优秀的程序员都热爱写作
    Java -- JDBC 学习--获取数据库链接
    前端学习 -- Html&Css -- 条件Hack 和属性Hack
    前端学习 -- Html&Css -- ie6 png 背景问题
    前端学习 -- Html&Css -- 框架集
    ECMAScript 6 -- 字符串的扩展
    ECMAScript 6 -- 数组的解构赋值
    前端学习 -- Html&Css -- 表单
    前端学习 -- Html&Css -- 表格
  • 原文地址:https://www.cnblogs.com/wxvirus/p/14730274.html
Copyright © 2011-2022 走看看