原文: https://www.cnblogs.com/LY-C/p/9482766.html 多线程下共享同一进程资源 from threading import Threadt = Thread(target,args)target:表示调用对象,即线程要执行的任务args:表示调用对象的参数”元组
原文:https://www.cnblogs.com/LY-C/p/9482766.html
多线程下共享同一进程资源
from threading import Thread t = Thread(target,args) target:表示调用对象,即线程要执行的任务 args:表示调用对象的参数”元组“
方法
t.start() #启动线程 t.join() #等待线程执行结束在执行后面的代码
单线程示例
from threading import Thread import time def func(): print(‘子进程‘) if __name__ == ‘__main__‘: t = Thread(target=func) t.start() time.sleep(1) print(‘主进程‘)
多线程和多进程示例
from threading import Thread from multiprocessing import Process import os import time def son(n): pass if __name__ == ‘__main__‘: start = time.time() for i in range(100): t = Thread(target=son,args=(‘线程‘,)) t.start() print(time.time() - start) for i in range(100): p = Process(target=son,args=(‘进程‘,)) p.start() print(time.time() - start)
递归锁和互斥锁
from threading import Lock,RLock Lock() #互斥锁,一把钥匙配一把锁 l = Lock() #创建锁 l.acquire() #上锁 l.acquire() #死锁 print(123) l.release() #开锁 l.release() RLock() #递归锁,可以有无止尽的锁,但是会有一把万能钥匙,同一进程下不会阻塞,不同进程会阻塞 l = RLock() #创建锁 l.acquire() #上锁 l.acquire() #上锁,同一进程下不会死锁 print(123) l.release() #开锁 l.release() #开锁,上多少锁就开多少锁