Python文档中有一部分我不清楚:
https://docs.python.org/3.4/library/multiprocessing.html#sharing-state-between-processes
“如上所述,在进行并发编程时,通常最好尽量避免使用共享状态。”
但是我找不到上面17.2.1.5中描述为什么最好避免使用共享状态的描述。有什么想法吗?
答案 0 :(得分:0)
共享状态就像一个全局变量,但......更全球化。
您不仅需要考虑代码的哪些部分正在读取和修改状态,还要考虑代码的运行副本以及如何访问它。当状态为 mutable 时,这变得更加棘手,即可以改变。
为了确保一个线程不会踩到另一个线程正在做的事情,你必须coordinate access to the state。可以使用semaphores,message-passing,software transactional memory等
来完成另见https://softwareengineering.stackexchange.com/questions/148108/why-is-global-state-so-evil。