SEO:
- Python Synchronized variable value doesn't change in global context
- Synchronized value not modified in main process
- Synchronized value not shared between processes
在Python的multiprocessing库里面,有老师讨论后,才发现自从Python 3.8以来,不同操作系统的新建进程的方式发生了变化:
- Linux系统始终使用
fork来创建新的进程。在fork的时候,父进程的所有资源都被子进程继承,因此在父进程全局定义的同步变量,同样可以被子进程访问,所以数据一致性得以保留 - Windows系统始终使用
spawn,即创建一个新的Python解释器进程的方法来实现多进程。相当于“多开”Python,因此overhead更多,效率更低,但是这是Windows系统本身的局限。在这种情况下,子进程只继承父进程中,用来启动新进程的 - https://docs.python.org/3/library/multiprocessing.html#multiprocessing.sharedctypes.synchronized
SOCIAL SHARE CARD GENERATOR