python并非真正意义上的多线程,不支持多核,只能单核,这是因为全局锁的原因
如果多个线程共享一个内存,如何做限制:
threading.RLock()
lock.release()
.join:表示必须等上一个函数执行完再执行下一个函数
import threading
import time
def run(num):
print('Hi , I am the thread',num)
time.sleep(1)
print('-->')
for i in range(20):
t = threading.Thread(target=run,args=(i,) )
t.start()
#t.join()
使用消息队列,可以防止多线程阻塞
如果想要多核,请使用多进程开发:
import time
from multiprocessing import Process
def sayHi(name):
print("hello word ",name)
time.sleep(1)
if __name__ == '__main__':
for i in range(10):
p = Process(target=sayHi,args=(i,))
p.start()
进程池: