-
0 votesanswersviews
在完成所有任务后,如何处理工作线程无限期地等待队列获取?
我有一堆 Worker 使用以下代码: while True: inp = q.get() <do stuff> q.task_done() 然后队列在主线程中加入,工作人员仍在等待 . 在这种情况下,如何让 Worker 优雅地关闭?我知道的唯一方法是将一堆Nones推入队列并检查它们,但是这个解决方案看起来非常hackish . 我... -
0 votesanswersviews
并行python处理数据
我有一个脚本,其中一部分在某些时候能够并行运行 . Python 3.6.6 目标是最大限度地减少执行时间 . 其中一个部分是与Redis的连接,获取两个键的数据,每个键为 pickle.loads 并返回已处理的对象 . 什么是这类任务的最佳解决方案?我已经尝试了 Queue() ,但是 Queue.get_nowait() 锁定了脚本,并且在 {process}.join() 之后,即使任务... -
4 votesanswersviews
Tkinter GUI中的多线程,不同类中的线程
我目前正在学习Tkinter GUI编程 . 我陷入了多线程概念的某个地方 . 虽然这里讨论了很多次这个主题,但我无法理解这个概念并将其应用到我的小样本程序中 . 以下是我的代码: from PIL import Image, ImageTk from Tkinter import Tk, Label, BOTH from ttk import Frame, Style from Tkinter... -
-1 votesanswersviews
tkinter避免GUI冻结
我开发了一个简单的Python应用程序,然后我决定使用Tkinter添加一个简单的GUI . 问题是,当我调用一个名为startprocess的函数并开始处理处理器很重的东西并且窗口冻结时 . 我知道这是一个常见的问题,我已经读过我应该使用多线程(非常复杂,因为函数也更新了GUI)或者将我的代码分成不同的函数,每个函数都工作了一段时间 . 无论如何,下面的代码需要修改以避免GUI冻结? impor... -
1 votesanswersviews
在Python 3.5中同时运行嵌套例程
我正在使用pySerial和一些自编的后处理模块进行I / O操作 . 将请求发送到COM端口,然后处理响应并将其保存到文本文件中 . 一切都运行良好,但我同时运行它有一些困难 . 它就是这样: while True: serial_port.action() # ^ will send the data to the post-processor # ... -
2 votesanswersviews
Python线程错误:此事件循环已在运行
如果您想要运行代码...请务必执行 pip install discord.py 我有以下三个python文件,它们一起工作以连接到discord服务器 Launch.py from Sender import * from Reciever import * class Launcher: def startThreads(sendOB, recOB, username): ... -
6 votesanswersviews
Windows上的Python Popen具有多线程 - 无法删除stdout / stderr日志
在Windows上使用python 2.7.4(注意:WinXP - 下面的评论者建议在Win7上正常工作),我有一个脚本创建几个线程,每个线程通过Popen运行子进程,stdout / stderr重定向到文件和调用等待() . 每个Popen都有自己的stdout / stderr文件 . 在每个进程返回后,我有时必须删除文件(实际上将它们移动到别处) . 我发现在所有wait()调用返回之... -
4 votesanswersviews
考虑到GIL,asyncio如何不是线程安全的?
asyncio docs阅读: 大多数asyncio对象不是线程安全的 . 只有在访问事件循环之外的对象时才应该担心 . 有人可以解释这一点,或举例说明误用asyncio会导致对线程之间共享的对象进行非同步写入吗?我认为GIL意味着一次只有一个线程可以运行解释器,所以在解释器中发生的事件,比如读取和编写Python对象,在线程之间进行了简单的同步 . 上面引用的第二句听起来像是一条线索,但我不... -
0 votesanswersviews
与本地计算机相比,在Nginx服务器上使用python 's ' threading'降低了性能
我已经构建了一个Flask应用程序,它可以计算图形中的一些路径 . 通常,这是一项非常贪婪的任务,需要花费大量时间才能完成计算 . 虽然我忙于配置算法,但我并没有真正关注服务器端的实现 . 我们已经 Build 了一个Nginx服务器,可以为整个服务器提供服务 . 这里是主要的Flask路线: @app.route('/paths', methods=['POST']) def paths(): ... -
1 votesanswersviews
冻结/悬挂tkinter Gui等待线程完成
按下按钮时我的界面冻结了 . 我正在使用线程,但我不确定为什么仍然悬挂 . 任何帮助将不胜感激 . 提前致谢 class magic: def __init__(self): self.mainQueue=queue.Queue() def addItem(self,q): self.mainQueue.put(q) def startC... -
2 votesanswersviews
如何识别带有队列的Python线程是否完成了任务?
这里我有 MazeRunner Class,它将 self.boxes 的所有元素放在队列中并在它们上运行线程,直到所有队列变为空 q.empty() . 这里的问题是我如何确定我的程序是否完成了对self.boxes队列中的所有元素执行线程并返回True . 它看起来很有挑战性,因为 our threads 在while循环中,它根据我们定义的 self.boxes 长度和 self.t... -
0 votesanswersviews
在python中使用线程时如何保留文件写入顺序
我有一些python代码来读取文件并将数据推送到列表 . 然后将此列表放入队列,使用线程处理列表,一次说20个项目 . 处理完毕后,我将结果保存到一个新文件中 . 放入新文件的内容实际上与原始文件的顺序不同 . 例如,我有输入, 1 a 2 b 3 c 4 a 5 d 但输出看起来像: 2 aa 1 ba ... -
0 votesanswersviews
线程一直在死(?)
我正在为 discord app 制作一个简单的机器人 . 我正在使用 flask 和discord.py library . 事情是,一旦机器人登录,它会在20-30秒后自动注销 . 我的代码如下: @app.route('/login', methods=['GET', 'POST']) def login(): error = None if request.method =... -
0 votesanswersviews
CPython和线程模块Lock()
由于CPython具有GIL,因此不允许任何线程同时执行python代码,因此在给定进程中似乎存在线程安全性 . 那么python线程模块 Lock () 的目的是什么?即使没有线程可以同时执行, Lock () 帮助的CPython中仍然会出现哪些同步问题? -
5 votesanswersviews
AttributeError:'DisabledBackend'对象没有属性'_get_task_meta_for'
我试图在超时的情况下从芹菜任务中读取元信息(如果任务未在给定时间内完成) . 我有3个芹菜 Worker . 当我按顺序对3个worker执行任务时,我的超时逻辑(从redis后端获取元信息)运行正常 . 但是,当我使用线程并行执行任务时,我得到错误'AttributeError:'DisabledBackend'对象没有属性'_get_task_meta_for'' . 主脚本 . from ... -
1 votesanswersviews
pyzmq使用自己的套接字创建进程
我有一些代码监视一些其他更改的文件,我想要做的是启动使用zeromq与不同的套接字的代码,我现在这样做的方式似乎导致断言在libzmq的某处失败,因为我可能正在重用同一个插座 . 我如何确保从监视器类创建新进程时不会重用上下文?多数民众赞成我认为正在发生的事情,如果你能说出我的其他愚蠢,请告知 . 这是一些代码: import zmq from zmq.eventloop import ioloo... -
218 votesanswersviews
函数调用超时
我正在调用Python中的一个函数,我知道它可能会停止并迫使我重新启动脚本 . 如何调用该函数或我将其包装成什么,以便如果它花费的时间超过5秒,脚本会取消它并执行其他操作? -
3 votesanswersviews
与python3 asyncio Build 联系
我正在尝试同时连接到多个服务器 . 我目前正在使用 loop.create_connection 但它在第一个无响应的服务器上冻结了 . gsock = loop.create_connection(lambda: opensock(sid), server, port) transport, protocol = loop.run_until_complete(gsock) 我试过线程这个,但... -
0 votesanswersviews
如何让服务器使用线程调用Python中的另一台服务器?
我有一个管道,其中一个请求命中一个服务器,该服务器调用另一个服务器,并且一个执行一个作业两秒钟,然后应该返回主服务器,它进行一些小的计算,然后返回到客户端 . 问题是我的当前设置会阻止并发请求的数量>工作者数量,而且我不知道如何使用Python线程使其异步 . 有关如何实现这一点的任何想法? 主服务器 - >外部服务器 - > 2秒 - >主服务器 :编辑 需要2秒的行是具... -
22 votesanswersviews
python asyncio,如何从另一个线程创建和取消任务
我有一个python多线程应用程序 . 我想在一个线程中运行一个asyncio循环,并从另一个线程发送回调和协同程序 . 应该很容易,但我无法理解asyncio的东西 . 我提出了以下解决方案,它可以完成我想要的一半,随意评论任何事情: import asyncio from threading import Thread class B(Thread): def __init__(se...