gpt4 book ai didi

python 3 |多线程在 thread.start() 声明之前开始

转载 作者:太空宇宙 更新时间:2023-11-04 11:22:24 26 4
gpt4 key购买 nike

尝试同时运行 2 个方法。一种是计时器方法,另一种是将数据写入 CSV。我正在尝试使用 Treading 同时运行它们,但线程在调用之前启动。

代码;


with open("C:\\ProgramData\\Example.txt", "r", encoding="utf8") as file:
array = for line in file.readlines()]))

fieldnames = 'Col1','Col2','Col3'
with open("C:\\ProgramData\\example.csv", 'w', newline='', encoding="utf8") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(fieldnames)
writer.writerows(array)
csvfile.close()

def timer():
import time
import sys

time_start = time.time()
seconds = 0
minutes = 0

while True:
try:
sys.stdout.write("\r{minutes} Minutes {seconds} Seconds".format(minutes=minutes, seconds=seconds))
sys.stdout.flush()
time.sleep(1)
seconds = int(time.time() - time_start) - minutes * 60
if seconds >= 60:
minutes += 1
seconds = 0
except KeyboardInterrupt as e:
break

if __name__=="__main__":
print("Not running")
t1 = threading.Thread(target=timer())
print("clearly running")
t2 = threading.Thread(target=regx())
t1.setName('t1')
t2.setName('t2')

t1.start()
t2.start()

t1.join()
t2.join()
# pool =Pool(processes=2)
# pool.map(timer(),regx())

控制台的输出;

Not running
2 Minutes 32 Seconds
Process finished with exit code -1

谁能帮我解决这个问题?

谢谢

最佳答案

除非您想立即运行该方法,否则不要使用 ()。如果您想引用方法本身(比如将其传递给 Thread),请不要使用 ()。试试这个代码:

if __name__=="__main__":
print("Not running")
t1 = threading.Thread(target=timer)
print("clearly running")
t2 = threading.Thread(target=regx)
t1.setName('t1')
t2.setName('t2')

t1.start()
t2.start()

t1.join()
t2.join()

关于 python 3 |多线程在 thread.start() 声明之前开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55680095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com