多任务编程-线程
标签:def 全局 ase 一个 get port bsp oba lob
##线程
from threading import Thread
def func(a):
print(a)
p = Thread(target=func, args=(‘a‘,))
p.setDaemon(True)
p.start()
p.join()
from threading import Thread, Event
e = Event()
e.wait()
e.set()
线程同步互斥
from threading import Thread, Event
e = Event()
def func(a):
e.wait()
print(a)
def func1(b):
e.set()
print(b)
p = Thread(target=func, args=(‘a‘,))
p1 = Thread(target=func1, args=(‘b‘,))
p.start()
p1.start()
p.join()
线程上锁 共有变量修改,用全局变量,且多线程抢夺,那个线程抢到使用,使用完让出给下个线程使用
上锁/解锁 变量上锁后,下一个上锁阻塞必须等待解锁后才可以进行
from threading import Thread, Lock
l = Lock()
c = 100
def func(a):
l.acquire()
global c
c = a
print(c)
l.release()
def func1(b):
l.acquire()
global c
c = c
print(c)
l.release()
p = Thread(target=func, args=(1,))
p1 = Thread(target=func1, args=(1,))
p.start()
p1.start()
p.join()
### with
with l:
xxx
xxx
相当与
l.acquire()
xxx
xxx
l.release()
多任务编程-线程
标签:def 全局 ase 一个 get port bsp oba lob
温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/biancheng/12263.html