• multiprocessing跨平台锁的使用(Windows问题)


    在Windows上可能遇到,开启的子进程不会关闭的问题

    参考multiprocessing官方文档:

    Explicitly pass resources to child processes

    On Unix a child process can make use of a shared resource created in a parent process using a global resource. However, it is better to pass the object as an argument to the constructor for the child process.

    Apart from making the code (potentially) compatible with Windows this also ensures that as long as the child process is still alive the object will not be garbage collected in the parent process. This might be important if some resource is freed when the object is garbage collected in the parent process.

    So for instance

    from multiprocessing import Process, Lock
    
    def f():
        ... do something using "lock" ...
    
    if __name__ == '__main__':
        lock = Lock()
        for i in range(10):
            Process(target=f).start()
    

    should be rewritten as

    from multiprocessing import Process, Lock
    
    def f(l):
        ... do something using "l" ...
    
    if __name__ == '__main__':
        lock = Lock()
        for i in range(10):
            Process(target=f, args=(lock,)).start()
  • 相关阅读:
    WPF Attached event
    WPF Progressbar
    IDisposable
    CommandTarget属性
    观察者模式
    DesignerSerializationVisibility, Browsable,Category Attribute
    CVS使用手册
    Javascript原型的简单理解
    由插件独特的处理器产生页面
    教训
  • 原文地址:https://www.cnblogs.com/playboysnow/p/6208764.html
Copyright © 2020-2023  润新知