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 批量执行

浙公网安备 33010602011771号