是否有可能在Python中有2个,3个或更多线程能够同时执行某些操作 - 在同一时刻?是否有可能其中一个线程迟到,另一个线程等待它,所以最后一个请求可以同时执行?
示例:有两个线程正在计算特定参数,完成后他们需要同时单击一个按钮(将发送请求发送到服务器)。
答案 0 :(得分:1)
“完全相同的时间”真的很难,几乎在同一时间是可能的,但你需要使用multiprocessing而不是线程。这是一个例子。
from time import time
from multiprocessing import Pool
def f(*args):
while time() < start + 5: #syncronize the execution of each process
pass
print(time())
start = time()
with Pool(10) as p:
p.map(f, range(10))
打印
1495552973.6672032
1495552973.6672032
1495552973.669514
1495552973.667697
1495552973.6672032
1495552973.668086
1495552973.6693969
1495552973.6672032
1495552973.6677089
1495552973.669164
请注意,某些过程实际上是同步的(以10e-7秒的精度)。不可能保证所有进程都会在同一时刻执行。 但是,如果您将进程数限制为实际拥有的核心数,那么大部分时间它们将在同一时刻完全运行。