Python:同时运行多个命令
问题描述:
我有两个android设备连接到我的Linux机器,我需要能够在同一时间在两者上都截图。我如何在Python中实现这一点? 这是我到目前为止有:Python:同时运行多个命令
import time, datetime
from threading import Thread
from Queue import Queue
def get_screenshot(deviceid):
print deviceid
print datetime.datetime.now()
# Logic to get screenshot goes here
deviceids = ["blabla1", "blabla2"]
q = Queue()
for d in deviceids:
t = Thread(target=get_screenshot, args=(d,))
t.setDaemon(True)
t.start()
for d in deviceids:
q.put(d)
q.join()
输出看起来是这样的:
blabla1
2016-10-02 12:55:17.146964
blabla2
2016-10-02 12:55:17.147141
的问题是:1。 的是正确的做法? 2.为什么1ms的差异?这可以避免吗? 3.该程序不会退出。我需要Ctrl + Z出来吧。
答
import datetime
from threading import Thread
def get_screenshot(deviceid):
print("%s %s" %(deviceid, datetime.datetime.now()))
deviceids = ["blabla1", "blabla2"]
for d in deviceids:
t = Thread(target=get_screenshot, args=(d,))
t.start()
- 你不需要排队。
- 线程创建和启动时浪费了0.2毫秒。
- 这是因为您将字符串放入队列中,而不是加入该队列 - 队列“等待字符串”并挂起。你真的需要加入你的线程吗?您可以在线程函数中将截图写入文件。 Python程序在所有线程完成时自动关闭。
区别是.177毫秒,这不是很多。 – njzk2