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

python – 线程和条件【代码】

我是线程新手,我真的不懂如何使用条件.目前,我有一个这样的线程类:class MusicThread(threading.Thread):def __init__(self, song):threading.Thread.__init__(self)self.song = songdef run(self):self.output = audiere.open_device()self.music = self.output.open_file(self.song, 1)self.music.play()#i want the thread to wait indefinitely at this point until#a condition/flag in the main thread is met/activated在主...

阻止主线程直到python后台线程完成side-task【代码】

我有一个线程python应用程序,后台线程中有一个长时间运行的mainloop.这个后台主循环实际上是对pyglet.app.run()的调用,它驱动一个GUI窗口,也可以配置为定期调用其他代码.我需要从主线程中随意调用do_stuff(duration)函数来触发GUI中的动画,等待动画停止,然后返回.实际动画必须在后台线程中完成,因为GUI库无法处理由单独的线程驱动. 我相信我需要做这样的事情:import threadingclass StuffDoer(threading.Thread):def __init__(sel...

Python:迭代字典而另一个线程修改字典【代码】

我有一个pyglet窗口,它有一个属性“observer”.观察者有一本字典“dict”.在main_loop()函数中,窗口根据observer.dict的内容重新绘制窗口.观察者本身是一个读取流的线程,向dict添加读数.观察者还有一个计时器线程,如果dict中有过时的项目,则每秒检查一次,如果是,则删除它们. 显然,如果在窗口迭代dict时添加或删除项目,则可能会导致问题.我目前的解决方法是每次都使dict的深层副本,并绘制副本.它似乎有效,但它是一个丑陋的解决方案....

python – 在pyqt4中进行线程处理【代码】

在我的GUI中,我必须下载很多东西.我使用urllib来做到这一点.当然问题就是GUI会冻结,直到下载完所有内容. 我的代码类似于以下内容QtCore.QObject.connect( self.UI.commandLinkButton_2 , QtCore.SIGNAL("clicked()") , self.addStoryToHistory )其中上述功能具有下载代码. 没有什么比在这之间发送共享数据更简单,并且该过程仅涉及将数据下载到位置. 什么是不冻结GUI的最简单方法?我应该使用多处理还是QThreads? 任何人都可以指向...

Pythonic线程安全对象

在阅读了很多关于这个主题并讨论IRC之后,反应似乎是:远离线程.很抱歉重复这个问题,我的目的是通过不接受“线程是邪恶的”答案来深入探讨这个问题,并希望找到一个共同的解决方案. 编辑:对锁定,死锁,锁粒度,活锁,非确定性和竞争条件的综合弊端说不. –Guido van Rossum 我正在开发一个Python Web应用程序,我想为每个用户创建一个只能由当前用户访问的全局对象. (例如请求的URI) 建议的方法是传递对象,IMO使应用程序更难维护,如果我...

Python:raw_input并在线程中打印【代码】

我有一个线程可以在控制台上打印一些文本,主程序有一个raw_input来控制线程. 我的问题是,当我写作和线程时,我得到这样的东西:-->whatiwWHATTHETHREADWRITErite但我想得到一些像这样的东西WHATTHETHREADWRITE -->whatiwrite谢谢!解决方法:您必须将输入与线程输出同步,以防止它们同时发生. 您可以修改主循环,如:lock = threading.lock()while 1:raw_input() # Waiting for you to press Enterwith lock:r = raw_input('--> ')...

python – PySide中的子线程中的计时器【代码】

首先,我对Python和Pyside很新.为了做一些自我改进,我试图在我的PySide程序的子线程中每秒执行一次QTimer执行(此时我只想让它每秒钟打印一个终端“hi!”没有冻结主窗口). 我尝试将example I found on the Qt Wiki从C转换为Python / PySide,但由于我不知道C我假设我错误地转换了它,这就是为什么它不能正常工作. 目前,doWork()函数似乎只执行一次,然后再也不会执行.我究竟做错了什么?有没有更好的方法在PySide中每秒执行一次函数而不...

python – md5多线程暴力【代码】

我使用python 2.7,我有一个简单的多头md5 dict粗暴:# -*- coding: utf-8 -*-import md5 import Queue import threading import tracebackmd5_queue = Queue.Queue()def Worker(queue):while True:try:item = md5_queue.get_nowait()except Queue.Empty:breaktry:work(item)except Exception:traceback.print_exc()queue.task_done()def work(param):with open('pwds', 'r') as f:pwds = [x.strip() for x in f.readlines()]for pw...

python – 如何在pyQt4中的不同线程中清除QTextEdit【代码】

我在我的程序的“主”线程中创建了一个QTextEdit组件然后我开始另一个线程,它将每隔x秒更新一次这个QTextEdit,但后来我得到了这个错误:QObject: Cannot create children for a parent that is in a different thread.这就是我这样做的方式:def initGui():#some gui componentsglobal txt_listtxt_list = QtGui.QTextEdit(w)txt_list.resize(580,400)txt_list.move(50, 50)txt_list.setReadOnly(1)txt_list.setFont(font_consolas...

python并发编程之多线程(实践篇)【代码】【图】

一.threading模块介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading# 1.开启线程的两种方式#直接调用 import threading import time def run(n):print(task,n)time.sleep(2)t1 = threading.Thread(target=run,args=(t1,)) t1.start()#继承式调用 mport threading import time class MyThread(threading.Thread):def __init__(self,n,sleep_time):super(MyThread, self).__init__()self.n = ns...

Python多线程【代码】

我需要从ip列表中提取所有url,我写了这个python脚本,但我有多次提取相同的ip的问题(使用相同的ip创建更多的线程).任何人都可以使用多线程改进我的解决方案吗? 对不起我的英语不好谢谢大家import urllib2, os, re, sys, os, time, httplib, thread, argparse, randomtry:ListaIP = open(sys.argv[1], "r").readlines() except(IOError): print "Error: Check your IP list path\n"sys.exit(1)def getIP():if len(ListaIP) != 0:val...

Python队列 – 最多运行n个线程【代码】

场景: 我有一个非常大的数据库模型迁移正在进行新的构建,我正在研究如何将Web应用程序中的当前实时数据迁移到本地测试数据库中. 我想在python中设置一个脚本,它将同时处理我的模型的迁移.我的模型实例有from_legacy和to_legacy方法.到目前为止,我加载了所有实例并为每个实例创建了线程,每个线程都从核心线程模块子类化,并使用run方法进行转换并保存结果. 我想让程序中的主循环构建这些线程的一大堆实例,并开始逐个处理它们,在它工...

python – 关于GUI计时器的建议,以显示后台线程的已用时间?【代码】

问题 我有一个PyQt GUI,用户按下按钮启动后台线程(workerThread,它是QThread的子类).我希望有一个计时器显示(以QLabel的形式)来显示自workerThread启动以来已经过了多少时间,并且我希望这个计时器在workerThread退出后立即停止. 可能解决方案 我已经考虑过创建另一个独立线程(timerThread),该线程使用QTimer向槽发送信号,以便每隔1秒经过一段时间来更新主GUI线程中的QLabel.一旦从workerThread收到终止信号,此timerThread将立即退出...

如何在python中确定合理的线程数?【代码】

我正在写一个简单的脚本,应该做大量的检查.每个检查都是独立的,所以我决定把它放到多个线程中.但是我不知道将设置脚本的机器有多快.我已经找到了相当不错的工具来检查目标机器的基本参数但是我想知道是否有任何方法来确定什么是最大合理的线程数量(我的意思是新线程开始减慢进程而不是加速它的时刻)?解决方法:您可以找到目标计算机所具有的核心数import multiprocessingmultiprocessing.cpu_count()如果选择多处理来管理任务,则可...

python – getattr / setattr / hasattr / delattr线程是否安全?【代码】

看到这个Singleton实现:if not hasattr(Singleton, "_instance"): with Singleton._instance_lock: if not hasattr(Singleton, "_instance"): Singleton._instance = Singleton() return Singleton._instance 似乎“Singleton._instance = ..”(...