Python:同时运行多个命令

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出来吧。

+0

区别是.177毫秒,这不是很多。 – njzk2

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() 
  1. 你不需要排队。
  2. 线程创建和启动时浪费了0.2毫秒。
  3. 这是因为您将字符串放入队列中,而不是加入该队列 - 队列“等待字符串”并挂起。你真的需要加入你的线程吗?您可以在线程函数中将截图写入文件。 Python程序在所有线程完成时自动关闭。