函数实现线程
import threading,time 将threading和time导包进来
nums=50 定义nums初始值为50
count=0 定义count初始值为0
#资源共享
def something(x): 定义一个以x为自变量的方法something
global count,nums 共享资源nums和count
while True: 定义一个while循环
if nums==0: 如果nums等于0
return 返回
nums=nums-1 将nums-1并重新赋值给nums
count=count+1 count+1并重新赋值给count
print('{0}抢到了{1} 剩余{2}'.format(x,count,nums)) 输出结果,其中包括x,count和nums
time.sleep(0.2) 每条间隔0.2
threading._start_new_thread(something,('张三',))
threading._start_new_thread(something,('李四',)) 这三条
threading._start_new_thread(something,('王五',))
print(threading.enumerate())
input()
import threading,time
将threading和time导包进来
nums=
50 定义nums初始值为50
count=0 定义count初始值为0
lock=threading.Lock()#创建一把锁
Cond=threading.Condition(lock=lock)#管理一把锁
class qiangpiao(threading.Thread): 创建一个qiangpiao的类并继承
def __init__(self,name): 创建一个名为init的方法
threading.Thread.__init__(self) 继承线程
self.setName(name)
def run(self): 创建一个run方法
global nums,count 共享数据
while True:
Cond.acquire()#当哪个线程获得资源,就加上锁
if nums == 0: 其他方法同上
return
nums = nums- 1
count = count + 1
print('{0}抢到了{1} 剩余{2}'.format(self.getName(), count, nums))
time.sleep(0.1)
Cond.release()#当哪个线程完成处理,就揭开锁
if __name__=='__main__':
huangniu=qiangpiao('黄牛')
shouji=qiangpiao('手机')
chuangkou=qiangpiao('窗口')
shouji.start()
huangniu.start()
chuangkou.start()