在python中同时运行两行代码?

时间:2013-11-28 07:54:47

标签: python python-2.7

如何在Python 2.7中完全同时运行两行代码?我认为它被称为并行处理或类似的东西,但我不能太确定。我在这里问,因为我甚至不确定谷歌会做什么......所以如果这是一个多余的问题,我会提前道歉。

提前致谢!

4 个答案:

答案 0 :(得分:4)

这取决于您在同一时间的意思。如果你想要的东西不会停止,而其他东西需要一段时间运行,线程是一个不错的选择。如果您想真正并行运行两件事,可以采用多处理方式:http://docs.python.org/2/library/multiprocessing.html

答案 1 :(得分:3)

您可以使用多线程或多重处理。

您需要为任务使用队列。

下面的示例代码将帮助您开始使用多线程。

import threading
import Queue
import datetime
import time

class myThread(threading.Thread):
    def __init__(self, in_queue, out_queue):
        threading.Thread.__init__(self)
        self.in_queue = in_queue
        self.out_queue = out_queue

    def run(self):
        while True:
            item = self.in_queue.get() #blocking till something is available in the queue
            #run your lines of code here
            processed_data = item + str(datetime.now()) + 'Processed'
            self.out_queue.put(processed_data)


IN_QUEUE = Queue.Queue()
OUT_QUEUE = Queue.Queue()

#starting 10 threads to do your work in parallel 
for i in range(10):
    t = myThread(IN_QUEUE, OUT_QUEUE)
    t.setDaemon(True)
    t.start()

#now populate your input queue
for i in range(3000):
    IN_QUEUE.put("string to process")

while not IN_QUEUE.empty():
    print "Data left to process - ", IN_QUEUE.qsize()
    time.sleep(10)

#finally printing output
while not OUT_QUEUE.empty():
    print OUT_QUEUE.get()

此脚本启动10个线程来处理字符串。等待处理输入队列,然后在处理时打印输出。

您可以为不同类型的处理定义多个线程类。或者将函数对象放入队列中,并使不同的函数并行运行。

答案 2 :(得分:0)

使用python运行并行作业有一个强大的包:使用JobLib

答案 3 :(得分:0)

如果你的意思是例如启动一个计时器并开始一个循环而且恰好在那之后,我想你可以;这样:start_timer; start_loop在一行