首页 > 代码库 > python多进程,进程迭代创建,造成电脑死机的问题解决

python多进程,进程迭代创建,造成电脑死机的问题解决

import osimport threadingimport multiprocessing# worker functiondef worker(sign, lock):    lock.acquire()    print(sign, os.getpid())    lock.release()if __name__ == __main__:    print(Main:,os.getpid())        # Multi-thread    record = []    lock  = threading.Lock()    for i in range(5):        thread = threading.Thread(target=worker,args=(thread,lock))        thread.start()        record.append(thread)        for thread in record:        thread.join()        # Multi-process    record = []    lock = multiprocessing.Lock()    for i in range(5):        process = multiprocessing.Process(target=worker,args=(process,lock))        process.start()        record.append(process)        for process in record:        process.join()

 

如果不写if __name__ == ‘__main__‘:    就会产生无数进程 最终占据所有内存
原因:
__name__是指示当前py文件调用方式的方法。如果它等于"__main__"就表示是直接执行,如果不是,则用来被别的文件调用,这个时候if就为False,那么它就不会执行最外层的代码了。
这样的话,子进程一载入这个文件,就会调用 processFunc 函数,会执行生成子进程的代码,因为他是最外层代码,或者叫做全局代码,从而产生多个进程。

python多进程,进程迭代创建,造成电脑死机的问题解决