python队列和线程的学习

  近期在研究一篇用Python语言批量探测网址脚本时,这个脚本值得研究的的是用了queue和threading的第三方库

queue.Queue()是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

  queue.Queue.put() 写入队列,queue.Queue.get()获取写入的队列,queue.Queue.empty() 如果队列为空,返回True,反之False。

 

 1 import queue
 2 q = queue.Queue()
 3 for i in range(5):
 4   q.put(i)
 5 while not q.empty():
 6   print (q.get())
运行结果
0
1
2
3
4
Threading是一个线程的库
1 import time
2 import threading
3 def test():
4     print("批量执行")
5     time.sleep(5)
6 if __name__ == "__main__":
7     for i in range(5):
8       t = threading.Thread(target=test())
9       t.start() #启动线程,即让线程开始执行
运行结果
批量执行
批量执行
批量执行
批量执行
批量执行

 Queue用于建立和操作队列,常和threading类一起用来建立一个简单的线程队列

 1 import queue
 2 import time
 3 import threading
 4 
 5 q = queue.Queue()
 6 
 7 
 8 def test():
 9   for i in range(2):
10     q.put(i)
11     while not q.empty():
12         print(q.get(),"批量执行")
13 
14 time.sleep(5)
15 if __name__ == "__main__":
16   for i in range(2):
17       t = threading.Thread(target=test())
18       t.start()
0 批量执行
1 批量执行
0 批量执行
1 批量执行

  

 



 
posted @ 2021-01-21 14:45  徐以  阅读(95)  评论(0)    收藏  举报