【Python--day41--线程队列】教程文章相关的互联网学习教程文章

python – 同时运行多个线程【代码】

所以我的目标是让do_something()函数启动自己的线程,以便do_something()可以并行运行,而不必等待前一个完成.问题是它似乎不是多线程(意味着一个线程在另一个线程开始之前完成).for i in range(len(array_of_letters)):if i == "a":t = threading.Thread(target=do_something())print "new thread started : %s"%(str(threading.current_thread().ident)) t.start()我在do_something()函数中也有一个current_thread().ident,但似...

python – 使用tor代理时的多线程爬虫【代码】

我正在尝试构建使用tor代理的多线程爬虫:我正在使用以下建立tor连接:from stem import Signal from stem.control import Controller controller = Controller.from_port(port=9151) def connectTor():socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9150)socket.socket = socks.socksocketdef renew_tor():global request_headersrequest_headers = {"Accept-Language": "en-US,en;q=0.5","User-Agent": random.c...

Python线程悬挂?【代码】

我有一个python程序打开一个套接字并拉出ssl证书.它工作得很好但是当我在某个IP范围内运行它时,程序不会继续通过线程140.有没有办法看看它为什么不继续? 这是该计划的线程部分createdThreads = 0threadSplit = len(self.IP_list) / 5#Splitting the work up between the threadsthread_1_list = self.IP_list[0:threadSplit]thread_2_list = self.IP_list[threadSplit:(threadSplit*2)]thread_3_list = self.IP_list[(threadSplit...

如何在Python中多次调用线程?【代码】

如果这是一个愚蠢的问题,我很抱歉.我试图使用多个类的多线程来完成不同的工作,这涉及多次在不同的时间调用这些多线程.但我不确定使用哪种方法.代码如下所示:class workers1(Thread): def __init__(self): Thread.__init__(self) def run(self): do some stuff class workers2(Thread): def __init__(self): Thread.__init__(self) def run(self): do some stuff class workers3(Thread): def __init__(self): Thread....

python – 是否有多线程map()函数?

我有一个副作用免费的功能.我想为数组中的每个元素运行它,并返回一个包含所有结果的数组. Python有什么东西可以生成所有值吗?解决方法:尝试多处理中的Pool.map函数: http://docs.python.org/library/multiprocessing.html#using-a-pool-of-workers 它本身并不是多线程的,但实际上这很好,因为GIL会在Python中严重削弱多线程.

python – collections.defaultdict线程安全吗?【代码】

我根本没有使用Python中的线程,并且认为这个问题是一个完全陌生的问题. 我想知道defaultdict是否是线程安全的.让我来解释一下: 我有d = defaultdict(list)默认情况下会创建缺失键列表.假设我有多个线程同时开始执行此操作:d['key'].append('value')最后,我应该以[‘value’,’value’]结束.但是,如果defaultdict不是线程安全的,如果线程1在检查dict中的’key’之后和d [‘key’] = default_factory()之前产生线程2,它将导致交错,...

Python:套接字和线程?

我有一个设计问题: 我有两个线程,一个心跳/控制线程和一个消息处理程序线程. 两者都共享同一个套接字,但是messageHandler线程只发送消息而从不接收.心跳线程发送和接收(接收消息并对心跳作出反应). 问题是我不确定这是否安全.我自己没有实现查看套接字是否正在使用的机制.那么在python上自动共享一个套接字是否安全? 如果不是这样,我把它们放在一个单独的线程中的原因是因为心跳比消息处理更重要.这意味着如果它充满了消息,它仍然...

python – Matplotlib – Tcl_AsyncDelete:错误的线程删除了异步处理程序?【代码】

我问这个问题是因为我无法解决Python / Django中的一个问题(实际上在纯Python中没问题)导致RuntimeError:错误线程删除了tcl_asyncdelete异步处理程序.这在某种程度上与我在Django中渲染matplotlib图的方式有关.我这样做的方式是:... import matplotlib.pyplot as plt ... fig = plt.figure() ... plt.close()我极其简化了我的代码.但问题是 – 即使我只有一行代码:fig = plt.figure()我看到这个RuntimeError正在发生.我希望我能...

Ctrl-C即KeyboardInterrupt在Python中杀死线程【代码】

我在某处读到只在Python的主线程中引发KeyboardInterrupt异常.我还读到在子线程执行时主线程被阻塞.那么,这是否意味着CTRL C永远不会到达子线程.我尝试了以下代码:def main():try:thread = threading.Thread(target=f)thread.start() # thread is totally blocking (e.g., while True)thread.join()except KeyboardInterrupt:print "Ctrl+C pressed..."sys.exit(1)def f():while True:pass # do the actual work在这种情况下,CT...

如何将数据发送到正在运行的python线程?【代码】

我有一个在我的应用程序中的不同线程中运行的类.我可以一次运行多个线程,线程是守护进程.一段时间后,其中一些线程需要接收和处理消息.我该怎么做呢? 我的代码示例如下所示:import threading import time class MyThread(threading.Thread):def __init__(self, args=(), kwargs=None):threading.Thread.__init__(self, args=(), kwargs=None)self.daemon = Trueself.receive_messages = args[0]def run(self):print threading.cur...

python – 检查线程/从列表中删除【代码】

我有一个扩展Thread的线程.代码看起来有点像这样;class MyThread(Thread):def run(self):# Do stuffmy_threads = [] while has_jobs() and len(my_threads) < 5:new_thread = MyThread(next_job_details())new_thread.run()my_threads.append(new_thread)for my_thread in my_threadsmy_thread.join()# Do stuff所以在我的伪代码中,我检查是否有任何作业(如数据库等),如果有一些作业,如果运行的线程少于5个,则创建新线程. 所以从这...

Python线程名称不会显示在ps或htop上【代码】

当我为Python线程设置名称时,它不会显示在htop或ps上. ps输出仅显示python作为线程名称.有没有办法设置一个线程名称,以便它显示在像他们这样的系统报告上?from threading import Thread import timedef sleeper():while True:time.sleep(10)print "sleeping"t = Thread(target=sleeper, name="Sleeper01") t.start() t.join()ps -T -p {PID}输出PID SPID TTY TIME CMD 31420 31420 pts/30 00:00:00 python 31420 3142...

Python在线程之间创建共享变量【代码】

我正在使用“线程”模块在Python中开发一个项目. 我怎样才能创建一个全局变量(在我的情况下我需要它为True或False)我的项目中的所有线程(大约4-6)都可以访问?解决方法:我们可以在线程类之外定义变量,并在类的方法中将其声明为全局变量. 请看下面简单的例子,它打印AB.两个变量flag和val在两个线程Thread_A和Thread_B之间共享. Thread_A打印val = 20,然后将val设置为30. Thread_B打印val = 30,因为在Thread_A中修改了val. Thread_B然...

Python – 从多个线程附加到同一文件【代码】

我正在编写一个应用程序,它将行添加到多个线程的同一文件中. 我有一个问题,其中一些行没有新行. 对此有何解决方案?class PathThread(threading.Thread):def __init__(self, queue):threading.Thread.__init__(self)self.queue = queuedef printfiles(self, p):for path, dirs, files in os.walk(p):for f in files:print(f, file=output)def run(self):while True:path = self.queue.get()self.printfiles(path)self.queue.task_d...

Python 3.4中的多处理与多线程与asyncio

我发现在Python 3.4中,很少有用于多处理/线程的不同库:multiprocessing vs threading vs asyncio. 但我不知道使用哪一个或是“推荐的”.他们做同样的事情,还是不同?如果是这样,哪一个用于什么?我想编写一个在我的计算机中使用多核的程序.但我不知道我应该学习哪个图书馆.解决方法:它们旨在用于(略微)不同的目的和/或要求. CPython(典型的主线Python实现)仍然具有global interpreter lock,因此多线程应用程序(现在实现并行处理的...