博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【爬虫】python 多线程知识
阅读量:6804 次
发布时间:2019-06-26

本文共 2548 字,大约阅读时间需要 8 分钟。

第一段代码:

1 __author__ = 'Administrator' 2  3 import threading 4 import time 5  6 index = 0 7  8 class MyThread(threading.Thread): 9     def __init__(self, threadname, counter):10         super(MyThread, self).__init__()11         self.threadname = threadname12         self.counter = counter13 14     def run(self):15         global index16         print "starting " + self.threadname17         while self.counter:18             time.sleep(1)19             index += 120             print "threadname: %s\tindex:%d\ttime: %s\n"%(self.threadname, index, time.ctime())21             self.counter -= 122 23 def main():24     print '=======================BEGIN==========================='25     thread1 = MyThread('thread1', 10)26     thread2 = MyThread('thread2', 5)27     thread1.start()28     thread2.start()29 30     thread1.join()31     thread2.join()32 33     print '========================END============================'34 35 if __name__ == '__main__':36     main()

 

第二段代码:

1 # -*- coding: gbk -*- 2 __author__ = 'Administrator' 3  4 import threading 5 import random, time, Queue 6  7  8 # 缓冲队列大小为5 9 MAX_SIZE = 510 # 模拟队列11 SHARE_Q = []12 # 条件变量13 CONDITION = threading.Condition()14 15 16 class Producer(threading.Thread):17     def run(self):18         products = range(5)19         global SHARE_Q20         while True:21             # 获得锁22             CONDITION.acquire()23             # 队列如果满了,则等待资源释放24             if len(SHARE_Q) == 5:25                 print "Queue is full..."26                 CONDITION.wait()27                 print "Consumer have consumed something"28             product = random.choice(products)29             SHARE_Q.append(product)30             print "Producer : ", product31             CONDITION.notify()32             CONDITION.release()33             time.sleep(3)34 35 36 class Consumer(threading.Thread):37     def run(self):38         global SHARE_Q39         while True:40             CONDITION.acquire()41             # 队列为空,消费者不能进行消费42             if not SHARE_Q:43                 print "Queue is Empty..."44                 CONDITION.wait()45                 print "Producer have produced something"46             product = SHARE_Q.pop(0)47             print "Consumer: ", product48             CONDITION.notify()49             CONDITION.release()50             time.sleep(2)51 52 53 def main():54     producer = Producer()55     consumer = Consumer()56     producer.start()57     consumer.start()58 59 60 if __name__ == '__main__':61     main()

 

转载于:https://www.cnblogs.com/puyangsky/p/5338092.html

你可能感兴趣的文章
异步8月书讯:重磅新书《人工智能(第2版)》不可错过
查看>>
软件评测-信息安全-应用安全-资源控制-用户登录限制(上)
查看>>
sudo
查看>>
11月机房技术指标
查看>>
功能表单之人员构造器字段类型详解——JEPLUS软件快速开发平台
查看>>
全球积分宝:混币圈需要怎么样的活法?
查看>>
李开复:人工智能对人类真正的威胁是什么?
查看>>
CentOS 6.*/7 防火墙放行端口
查看>>
docker pipework 实现跨宿主主机容器互联
查看>>
Hutool之正则表达式工具类——ReUtil
查看>>
execute、executeQuery和executeUpdate之间的区别
查看>>
Windows及Apache Struts2 高危漏洞安全公告及解决方案
查看>>
企业网站建设,手机网站建设,专业的网站建设,网站建网站建设企业,网页建设与制作...
查看>>
您如何创建AWS图表?
查看>>
iOS多线程编程
查看>>
HTTP参数中Etag的重要性
查看>>
T-MBA·沟通·倾听·V1 | 7天学习倾听,6月14日开营,包学会!
查看>>
java架构程序员月入破3万到底是怎么炼成的,一篇文章让你了解
查看>>
mongoDB JAVA操作
查看>>
python基础进阶
查看>>