Fly*_*ra1 5 python multithreading list
我正在编写一个脚本,它从表中获取 N 条记录,并通过多线程处理所述记录。
以前,我只是在每个工作定义中的 SQL 语句中使用 Order by RAND(),并希望不会有重复。
这种工作(重复数据删除稍后完成),但是,我想通过以下方式使我的脚本更加高效:
1)查询一次表,提取N条记录,并将它们分配给一个列表
2)将大列表拆分为Y列表的相同大小的列表,这可以通过以下方式完成:
number_of_workers = 2
first_names = ['Steve', 'Jane', 'Sara', 'Mary','Jack']
def chunkify(lst,n):
return [lst[i::n] for i in xrange(n)]
list1 = chunkify(first_names, number_of_workers)
print list1
Run Code Online (Sandbox Code Playgroud)
3)在多线程中定义worker函数时,向每个worker传递不同的子列表。注意 - 工作人员的数量(以及我想要将查询结果拆分成的部分)在函数的开头定义。然而,由于我对 Python 相当陌生,我不知道如何将每个子列表传递给单独的工作人员(或者它甚至可行吗?)
任何帮助、其他建议等将不胜感激!
多线程代码示例如下。我将如何使用
import threading
import random
def worker():
assign sublistN to worker N
print sublistN
threads = []
for i in range(number_of_workers):
print i
print ""
t = threading.Thread(target=worker)
threads.append(t)
t.start()
Run Code Online (Sandbox Code Playgroud)
先感谢您!