原文: 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() #开锁,上多少锁就开多少锁
