python多进程并行没起作用_Python中的多进程与并行性

我正在编写一个Python脚本,它使用scapy进行一些包嗅探和解析。所有这些都很好地工作,我决定尝试将其作为多线程脚本来处理更大的流量。在

基本思想是,如果scapy看到一个有趣的包,将其放入队列中,让所有的工作人员从队列中取出一个包,处理它,然后返回到另一个包。这个循环只运行一次,所以我猜当脚本回到事情的边缘时,它不会松懈。在

如何才能使scapy继续向队列中抛出数据包,而我的线程可以继续处理队列中的数据包?在from scapy.all import *

from Queue import Queue

from threading import Thread

max_threads=10

packetqueue=Queue(maxsize=0)

def queue_packet(packet):

packetqueue.put(packet)

def analyze_packet(q):

while True:

packet=q.get()

q.task_done()

for i in range(max_threads):

worker=Thread(target=analyze_packet,args=(packetqueue,))

worker.setDaemon(True)

worker.start()

sniff(iface="eth4", filter = "", store=0, prn=queue_packet)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值