|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
比如有下面一段代码:
- # coding = utf-8
- import time
- import threading
- import random
- def p(i):
- print (i)
- time.sleep(random.randint(1,3))
- print(i)
- threads2 = []
- for i in range(0, 2):
- threads2.append(threading.Thread(target=p, args=(i,)))
- while 1:
- time.sleep(10)
- for t in threads2:
- t.start()
复制代码
运行后会有如下报错信息。
这个应该是threads只能运行一次吧。但是我的程序就是要定时或者每过多少时间去启动一次这些线程(可以保证上一次运行的已经全部结束)。那么怎么办呢?
如果用的python3可以试试这样。
- from concurrent.futures import ThreadPoolExecutor
- import time
- def a(v, i):
- print(v)
- time.sleep(i)
- with ThreadPoolExecutor(max_workers=2) as t:
- t.submit(a, '5', 10)
- t.submit(a, '6', 5)
- t.submit(a, '7', 7)
- t.submit(a, '8', 9)
复制代码
加个while就行了。
2没试过。
|
|