#!/home/online/bin/python/bin/python
# coding:utf-8
# for2thread.py
# sinomazing
# http://hi.baidu.com/sinomazing/blog/item/bf29c1ee40865d232cf53445.html
# .for...........
from time import ctime,sleep
s = []
list = xrange(10)
def doSomething(i):
print i,u"thread ..",ctime()
sleep(0.4)
return i
print u"for loop."
for i in list:
s.append(doSomething(i))
print '+++++++++'
print [a for a in s]
print '+++++++++'
##################################
import thread
from Queue import Queue,Empty,Full
taskPool=Queue()
taskOut=Queue()
def doInQueue(taskPool, taskOut):
while True:
try:
i = taskPool.get_nowait()#.get()..get_nowait()
s = doSomething(i)
taskOut.put(s)
except Empty:
print "progress finished"#........?(...)
return
for i in list:
taskPool.put_nowait(i)
count = 3 #threads numbers
print count,u"threads are running..."
for i in xrange(count):
t=thread.start_new_thread(doInQueue,(taskPool,taskOut))
s=[]
i=len(list)
while True:
try:
j=taskOut.get_nowait()
s.append(j)
i-=1
if i==0:
break
except Empty:
sleep(0.3)#.........
print 'taskOut==',[x for x in s]
for2thread.py 把for循环转化成多线程的样例 自己写的欢迎拍砖
最新推荐文章于 2024-07-28 03:05:12 发布