设为首页 加入收藏

TOP

Python自动化--语言基础7--操作日志、加密、发送邮件、线程、生产者消费者(三)
2017-12-23 06:07:16 】 浏览:626
Tags:Python 自动化 语言基础 7-- 操作 日志 加密 发送 邮件 线程 生产者 消费者
quot;
%(func,ctime())) 6 sleep(4) 7 def move(func): 8 for i in range(2): 9 print ("I was at the %s! %s" %(func,ctime())) 10 sleep(5) 11 12 def player(name): 13 r = name.split('.')[1] 14 if r=="mp3": 15 music(name) 16 elif r=="mp4": 17 move(name) 18 else: 19 print("%s is error!"%name) 20 21 lists = ["love.mp3","hate.mp4","cuicui.mp3","nnnn.mp4"] 22 23 threads = [] 24 files = range(len(lists)) 25 for i in files: 26 t = threading.Thread(target=player,args=(lists[i],)) 27 threads.append(t) 28 29 if __name__ == '__main__': 30 for i in files: 31 threads[i].start() 32 for i in files: 33 threads[i].join() 34 print ('all end: %s' %ctime())

 

5、生产者与消费者示例:

 1 import threading
 2 class Produce(threading.Thread):
 3 
 4     def __init__(self,name):
 5         threading.Thread.__init__(self)
 6         self.name = name
 7     def run(self):
 8         global x
 9         tt.acquire()
10         if x > 0 :
11 
12             print("我不生产了")
13         else:
14             for i in range(5):
15                 x += 1
16                 print("%s在生产中,第%d个"%(self.name,x))
17         tt.release()
18 
19 class Consume(threading.Thread):
20     def __init__(self,name):
21         threading.Thread.__init__(self)
22         self.name = name
23     def run(self):
24         global x
25         tt.acquire()
26         if x == 0:
27 
28             print("我不消费了")
29         else:
30             for i in range(5):
31                 x -= 1
32                 print("%s在消费中,第%d个"%(self.name,x+1))
33         tt.release()
34 x = 0
35 tt = threading.Lock()
36 # tt = threading.Condition
37 
38 p = Produce("produce")
39 c = Consume("consume")
40 
41 p.start()
42 c.start()
43 
44 p.join()
45 c.join()
首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python 内置函数 compile() 下一篇012函数

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目