2020年7月10日 星期五

Python的list和dictionary是否是thread safe?

在標準的python interpreter中(canonical python interpreter),內建的functions都是thread safe的。首先,它們是atomic,就是一個內建的function不會執行到一半被切換到別的thread;再來,在多數的情形,python interpreter內部一次只會執行1個thread (除非是一些I/O相關,保證安全的function)。為什麼有這樣的限制呢? 因為如果要讓多個thread同時執行,所作的修改會讓single-thread的執行效率變差,所以一次只執行1個thread是權衡之後的作法。

沒有留言:

張貼留言