并发的实现有多种方式,本文仅给出多线程+队列的一个简单示例。
import queue
import threading
# 创建一个队列对象,把数组值放进去
q = queue.Queue(maxsize=1000)
for i in range(100):
q.put(i)
# 定义实际操作
def do_something(i):
print(i)
# 从队列中取出值,并调用实际操作
def f(queue):
while not queue.empty():
i = queue.get()
do_something(i)
# 起10个线程,线程target去执行从队列中取值并进行操作的动作
threads = []
for t in range(10):
thread = threading.Thread(target=f, args=(q,))
threads.append(thread)
thread.start()
for t in threads:
t.join()