码迷,mamicode.com
首页 > 编程语言 > 详细

多任务编程-线程

时间:2019-11-19 14:16:53      阅读:75      评论:0      收藏:0      [点我收藏+]

标签: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.cnblogs.com/chenlulu1122/p/11888634.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!