Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用多线程技术每两秒生产一个面包?_Python_Multithreading - Fatal编程技术网

Python 如何使用多线程技术每两秒生产一个面包?

Python 如何使用多线程技术每两秒生产一个面包?,python,multithreading,Python,Multithreading,我想用多线程来模拟我们公司生产面包,我想每两秒钟生产一个面包: import threading import time def run(n): print ("product--%s" %n) time.sleep(2) start_time = time.time() for i in range(30): t = threading.Thread(target=run, args=("bread-%s"%i,)) t.start() 但似乎不要停顿两

我想用多线程来模拟我们公司生产面包,我想每两秒钟生产一个面包:

import threading
import time

def run(n):
    print ("product--%s" %n)
    time.sleep(2)

start_time = time.time()

for i in range(30):
    t = threading.Thread(target=run, args=("bread-%s"%i,))
    t.start()
但似乎不要停顿两秒钟,它直接打印所有的面包:

product--bread-1
product--bread-2
product--bread-3
product--bread-4
product--bread-5
product--bread-6
product--bread-7
product--bread-8
product--bread-9
product--bread-10
product--bread-12
product--bread-11
product--bread-13
product--bread-14
product--bread-15
product--bread-16
product--bread-17
product--bread-18
product--bread-19
product--bread-20
product--bread-21
product--bread-22
product--bread-23
product--bread-24
product--bread-25
product--bread-26
product--bread-27
product--bread-28
product--bread-29
product--bread-30
时间。睡眠对我不起作用,如何实现我的要求? 我想每两秒钟生产一个面包,而不是一次生产所有面包。

来自:

加入(超时=无)

等待线程终止。这将阻止调用线程,直到调用其join()方法的线程终止(正常终止或通过未处理的异常终止),或者直到出现可选超时

您可以使用
join()
等待线程执行,加入每个新启动的线程

for i in range(30):
    t = threading.Thread(target=run, args=("bread-%s"%i,))
    t.start()
    t.join()
从:

加入(超时=无)

等待线程终止。这将阻止调用线程,直到调用其join()方法的线程终止(正常终止或通过未处理的异常终止),或者直到出现可选超时

您可以使用
join()
等待线程执行,加入每个新启动的线程

for i in range(30):
    t = threading.Thread(target=run, args=("bread-%s"%i,))
    t.start()
    t.join()

您的代码设置为立即打印bread参数,然后休眠2秒。因此,当您执行此代码时,所有线程都会冲向打印
产品--bread-x
,并且只有在这样做之后,它们才会休眠。欢迎使用。请花点时间阅读它及其包含的链接。您的代码设置为立即打印bread参数,然后休眠2秒。因此,当您执行此代码时,所有线程都会冲向打印
产品--bread-x
,并且只有在这样做之后,它们才会休眠。欢迎使用。请花点时间阅读它所包含的链接。