加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python thread

发布时间:2020-12-20 10:22:30 所属栏目:Python 来源:网络整理
导读:?原文: https://www.cnblogs.com/LY-C/p/9482766.html 多线程下共享同一进程资源 from threading import Threadt = Thread(target,args)target:表示调用对象,即线程要执行的任务args:表示调用对象的参数”元组“ 方法 t.start() #启动线程t.join() #等待

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读