我想同时运行函数example()n次,没有任何延迟,这个当前脚本能够运行n次,但每次调用之间几乎有几毫秒的差异。我想要同时击中该功能。有没有更好的方法呢? 我过去也使用过多处理程序,但如果运行超过n = 100,它会减慢我的计算机速度。 请提出一个好方法
import threading,argparse,sys,subprocess
from time import strftime
def example(a):
time= strftime("%H:%M:%S")
print("Hello" +a)
print(time) # It should be same for all n concurrent, since we want all to hit same time
def main(argv):
parser = argparse.ArgumentParser(description="Hello")
parser.add_argument("-n", type=str, dest="n")
parser.add_argument("-a", type=str, dest="a")
global verbose
global simulated
verbose = args.verbose
n = args.n
a = args.a
for counter in range(1, int(n) + 1):
try:
t = threading.Thread(name="thread" + str(counter), target=example, args=(a))
t.start()
except Exception as e:
print(e)
if __name__ == '__main__':
try:
ret = main(sys.argv[1:])
sys.exit(ret)
except Exception as ex:
print('Error' + str(ex))
sys.exit(1)
答案 0 :(得分:0)
您想要同时在多个线程中启动一个函数。我从来没有成功,但一个想法(未经测试)将是 - 你启动所有100个线程(以及你确定启动所有100个线程0.5s的通常时间的选项?) - 在你的线程中,你等待一个信号:a" GO"任何地方或时间/日期存储在文件中的任何位置,这可能是#34;第一个线程的时间开始+ 0.5s"。当线程中的时间满足时,则执行该功能。 由于我不知道线程的内在生命的原因,我不能告诉你,如果它肯定是完全相同的时间。