Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为工作线程创建管理器?_Python_Multithreading_Threadpool_Pool - Fatal编程技术网

Python 如何为工作线程创建管理器?

Python 如何为工作线程创建管理器?,python,multithreading,threadpool,pool,Python,Multithreading,Threadpool,Pool,该代码适用于单个“管理器”,它基本上会启动一些到服务器的HTTP访问。但我撞到了一堵砖墙 现在如何创建两个管理器,每个管理器都有自己的下载\u Dashlet\u作业对象和tcp\u池\u对象?本质上,管理者将指挥自己的工人从事两项不同的工作。对于学习Python类来说,这似乎是一个非常好的难题 import workerpool from urllib3 import HTTPConnectionPool class Download_Dashlet_Job(workerpool.Job):

该代码适用于单个“管理器”,它基本上会启动一些到服务器的HTTP访问。但我撞到了一堵砖墙

现在如何创建两个管理器,每个管理器都有自己的下载\u Dashlet\u作业对象和tcp\u池\u对象?本质上,管理者将指挥自己的工人从事两项不同的工作。对于学习Python类来说,这似乎是一个非常好的难题

import workerpool
from urllib3 import HTTPConnectionPool

class Download_Dashlet_Job(workerpool.Job):
  def __init__(self, url):
    self.url = url
  def run(self):
    request = tcp_pool_object.request('GET', self.url, headers=headers)

tcp_pool_object = HTTPConnectionPool('M_Server', port=8080, timeout=None, maxsize=3, block=True)
dashlet_thread_worker_pool_object = workerpool.WorkerPool(size=100)

#this section emulates a single manager calling 6 threads from the pool but limited to 3 TCP sockets by tcp_pool_object
for url in open("overview_urls.txt"):
  job_object = Download_Dashlet_Job(url.strip())
  dashlet_thread_worker_pool_object.put(job_object)

dashlet_thread_worker_pool_object.shutdown()
dashlet_thread_worker_pool_object.wait()

首先,
workerpool.workerpool(大小=100)
创建100个工作线程。在下面的评论中,你是说你想要6个线程?你需要把它改成6


为了创建第二个池,您需要创建另一个池。您还可以创建另一个作业类,如果愿意的话,只需将这种不同类型的作业添加到同一个池中。

我查看了芹菜……这很有趣。我看到它有很大的潜力,但可能对我所做的工作来说是过度的。我基本上只是在为服务器编写一个负载测试(也就是说,服务器一次支持200多个客户端)。