多线程的并发是假的吗?
多线程的并发是假的,是因为python解析器中有一个GIL锁。
GIL锁保证同一时刻只有一个线程可以执行的。
import threading
#子线程死循环
def test():
while True:
pass
t1 = threading.Thread(target=test)
t1.start()
#主线程死循环
while True:
pass
使用htop查看进程只有一个CPU为100%,想解决这个问题可以使用进程代替线程,或者将cpython解释器换为Jpython 解释器。