【python – 我可以暂停和恢复的线程?】教程文章相关的互联网学习教程文章

使用并行线程提高Python执行速度【代码】

假设我有以下示例代码:x = foo1(something1) y = foo2(something2)z = max(x, y)我想通过使用线程来缩短此代码的执行时间(希望对您有所帮助吗?).我想使事情尽可能简单,所以基本上我想做的是创建同时工作的两个线程,分别计算foo1和foo2. 我正在阅读有关线程的内容,但是我发现它有些棘手,并且我不会因为做这么简单的事情而在其中浪费太多时间.解决方法:假设foo1或foo2是CPU绑定的,线程并不能改善执行时间…实际上,通常它会使情况更...

如何线程wxPython进度栏【代码】

我正在尝试线程wx.ProgressDialog.我有一个进度线程课程class Progress(threading.Thread):def __init__(self):threading.Thread.__init__(self)def run(self):max = 1000000dlg = wx.ProgressDialog("Progress dialog example","An informative message",maximum = max,parent=None,style = wx.PD_CAN_ABORT| wx.PD_APP_MODAL| wx.PD_ELAPSED_TIME| wx.PD_ESTIMATED_TIME| wx.PD_REMAINING_TIME)keepGoing = Truecount = 0while k...

多线程Python中的信号处理【代码】

这应该非常简单,我很惊讶我无法在stackoverflow上找到这个问题. 我有一个类似程序的守护进程需要响应SIGTERM和SIGINT信号才能与upstart一起使用.我读到最好的方法是在主线程的一个单独的线程中运行程序的主循环,让主线程处理信号.然后,当接收到信号时,信号处理程序应通过设置在主循环中例行检查的sentinel标志来告诉主循环退出. 我已经尝试过这样做,但它没有像我预期的那样工作.请参阅以下代码:from threading import Thread impo...

python – 在单独的线程中运行pyQT GUI主应用程序【代码】

我想在我已经建立的应用程序中添加一个PyQt GUI控制台.但是PyQt GUI会阻止整个应用程序,使其无法完成其余的工作.我尝试使用QThread,但是从mainWindow类调用.我想要的是在单独的线程中运行MainWindow应用程序.def main()app = QtGui.QApplication(sys.argv)ex = Start_GUI()app.exec_() #<---------- code blocks over here !#After running the GUI, continue the rest of the application taskdoThis = do_Thread("doThis")doThi...

python – 需要一个线程安全的异步消息队列【代码】

我正在寻找一个Python类(最好是标准语言的一部分,而不是第三方库)来管理异步“广播风格”消息. 我将有一个线程将消息放入队列(‘putMessageOnQueue’方法不能阻止),然后多个其他线程将等待消息,可能会调用一些阻塞’waitForMessage’函数.当消息放在队列上时,我希望每个等待的线程都获得它自己的消息副本. 我查看了内置的Queue类,但我不认为这是合适的,因为消费消息似乎涉及将它们从队列中删除,因此只有1个客户端线程会看到每个. 这...

python中是否有任何内置的跨线程事件?【代码】

python中是否有任何内置语法允许我将消息发布到我的问题中的特定python线程?就像在Windows中的pyQt或:: PostMessage()中的“排队连接信号”一样.我需要这个用于程序部分之间的异步通信:有许多线程处理网络事件,他们需要将这些事件发布到单个“逻辑”线程,该线程转换事件安全的单线程方式.解决方法:Queue模块是python非常适合你所描述的. 您可以设置一个在所有线程之间共享的队列.处理网络事件的线程可以使用queue.put将事件发布到...

Python请求模块多线程【代码】

有没有办法使用多处理接口加速我的代码?问题是这个接口使用map函数,它只能用于1个函数.但我的代码有3个功能.我试图将我的功能合二为一,但没有取得成功.我的脚本从文件中读取站点的URL,并在其上执行3个功能. For Loop使它非常慢,因为我有很多URLimport requestsdef Login(url): #Log in payload = {'UserName_Text' : 'user','UserPW_Password' : 'pass','submit_ButtonOK' : 'return buttonClick;' }try:p = session...

Python如何用信号杀死队列中阻塞的线程?【代码】

我开始在队列上运行一堆线程,我想在发送SIGINT时按下它们(Ctrl C).处理这个问题的最佳方法是什么?targets = Queue.Queue() threads_num = 10 threads = []for i in threads_num:t = MyThread()t.setDaemon(True)threads.append(t)t.start()targets.join()解决方法:是不是Ctrl C SIGINT? 无论如何,您可以在处理程序中为相应的信号安装处理程序: >设置一个指示工人退出的全局标志,并确保他们定期检查>或者在队列中放置10个关闭令牌...

python – 如何检查线程当前是否包含GIL?【代码】

我试图找到一个函数,告诉我当前线程是否具有全局解释器锁. Python / C-API文档似乎不包含这样的函数. 我目前的解决方案是在使用PyEval_SaveThread释放它之前使用PyGILState_Ensure()获取锁,而不是尝试释放当前线程未获取的锁. (顺便说一下,“发出致命错误”是什么意思?) 这个问题的背景:我有一个嵌入Python的多线程应用程序.如果线程在没有释放锁定的情况下关闭(可能由于崩溃而发生),则其他线程将无法再运行.因此,当清理/关闭线程...

Python ThreadPoolExecutor – 保证在与提交的func相同的线程中运行的回调吗?【代码】

在ThreadPoolExecutor(TPE)中,回调始终保证在与提交的函数相同的线程中运行吗? 例如,我使用以下代码对此进行了测试.我运行了很多次,似乎func和回调总是在同一个线程中运行.import concurrent.futures import random import threading import time executor = concurrent.futures.ThreadPoolExecutor(max_workers=3) def func(x): time.sleep(random.random()) return threading.current_thread().name def callback(future): t...

python – pdb无法在另一个线程中断?【代码】

考虑这个多线程程序:import threadingclass SomeThread(threading.Thread):def run(self):a = 1print adef main():print 'hola'someThread = SomeThread()someThread.start()if __name__ == '__main__':main()当我用pdb调试这个程序时,在提示符下我首先在两个print语句的每一个上设置一个断点.然后我继续pdb在print’hola’中断.我再次继续看到打印在另一个线程中的效果,但pdb不会中断. 帮助命令没有列出任何东西来切换像gdb这样的...

python – QThread:在线程仍在运行时被销毁【代码】

我在python中遇到QThreads的问题.我想改变标签的背景颜色.但我的应用程序在启动时崩溃.“QThread:在线程仍在运行时被破坏”class MainWindow(QMainWindow):def __init__(self):QMainWindow.__init__(self)self.ui = Ui_MainWindow()self.ui.setupUi(self)statusTh = statusThread(self)self.connect(statusTh, SIGNAL('setStatus'), self.st, Qt.QueuedConnection)statusTh.start()def st(self):if self.status == 'ON':self.ui.l...

GAE python线程不并行执行【代码】

我试图在GAE上使用Python创建一个简单的Web应用程序.应用程序需要为每个收到的请求生成一些线程.为此,我使用的是python的线程库.我生成所有线程,然后等待它们.t1.start() t2.start() t3.start()t1.join() t2.join() t3.join()应用程序运行正常,除了线程是串行而不是并发运行的事实(通过在每个线程的run()方法的开头/结尾打印时间戳来确认).我已按照http://code.google.com/appengine/docs/python/python27/using27.html#Multithrea...

Python从多个线程记录【代码】

我有一个log.py模块,至少在其他两个模块(server.py和device.py)中使用. 它有这些全局变量:fileLogger = logging.getLogger() fileLogger.setLevel(logging.DEBUG) consoleLogger = logging.getLogger() consoleLogger.setLevel(logging.DEBUG)file_logging_level_switch = {'debug': fileLogger.debug,'info': fileLogger.info,'warning': fileLogger.warning,'error': fileLogger.error,'critical': fileLogger.criti...

wxPython非阻塞GUI线程和多处理?【代码】

Python 2.7.3 x64wxPython 2.8 x64 已经阅读了很多关于python线程和多处理的内容,特别是Doug Hellmann撰写的一些文章,这些文章有很大的帮助.但是,我对一件事感到困惑…… 我认为Python多处理模块或多或少是线程模块的直接替代品,除了args必须是可选择的,但我发现为了不阻止我的GUI,我必须首先创建一个新的线程使用threading.Thread然后使用multiprocessing.Process在该线程中进行多进程.这很有效,而且效果很好,但对我来说似乎有点笨...