Python Asynhronus,真实过程的多线程模拟

Python Asynhronus,真实过程的多线程模拟,python,multithreading,timer,Python,Multithreading,Timer,首先,我必须提到,我不是程序员,而是机械工程师,所以如果我误解了某些东西或说了一些废话,请不要把我钉在十字架上 我想写一个python代码,它将“模拟”现实生活中的问题。现实生活中的问题类似于FIFO队列,对象从不同的站点获取,在那里花费一些时间,然后返回队列 我所理解的是我需要编写一个异步程序,因为我有一个函数将对象放入队列(比如说每15秒一次),然后我有一些工作站,它们只从队列中取出一个对象,然后再处理它一段时间(简单的计时器和打印)“嗨,我正在处理对象x,将在:分钟内返回它” 我不确定我是

首先,我必须提到,我不是程序员,而是机械工程师,所以如果我误解了某些东西或说了一些废话,请不要把我钉在十字架上

我想写一个python代码,它将“模拟”现实生活中的问题。现实生活中的问题类似于FIFO队列,对象从不同的站点获取,在那里花费一些时间,然后返回队列

我所理解的是我需要编写一个异步程序,因为我有一个函数将对象放入队列(比如说每15秒一次),然后我有一些工作站,它们只从队列中取出一个对象,然后再处理它一段时间(简单的计时器和打印)“嗨,我正在处理对象x,将在:分钟内返回它”

我不确定我是否可以使用线程?如果我有100个异步工作的工作站,那么可以启动100个线程吗?因为据我所知,每个线程都应该有一个计时器

我会要求给我一点推动,以最简单的方向来解决它,它不必是漂亮的,但对我来说功能和简单

提前感谢您的每一个想法! 顺致敬意,
当然,您可以使用线程同时运行多个进程

您必须创建这样的类:

from threading import Thread

class Work(Thread):

    def __init__(self):
        Thread.__init__(self)
        self.lock = threading.Lock()

    def run(self): # This function launch the thread
        (your code)
如果要同时运行多个线程:

def foo():
    i = 0
    list = []
    while i < 10:
        list.append(Work())
        list[i].start() # Start call run() method of the class above.
        i += 1
从主线程,您可以在队列上调用join(),等待所有挂起的任务完成

这种方法的好处是不创建和销毁线程,这很昂贵。工作线程将连续运行,但当队列中没有任务时,工作线程将处于休眠状态,CPU时间为零


我希望它能对您有所帮助。

听起来像是
线程化
可以很好地满足您的需要。cpython中线程化的缺点是一次只能运行一个线程的python代码。但是如果您的“工作”进程只是在
时间之前模拟工作。睡眠
ing则您会很好。
lock = threading.Lock()
lock.acquire()
try:
    yourVariable += 1 # When you call lock.acquire() without arguments, block all variables until the lock is unlocked (lock.release()).
finally:
    lock.release()