所以我有一个队列:
q = Queue.Queue()
Run Code Online (Sandbox Code Playgroud)
我在里面放一些东西。
items = ["First", "Second"]
for val in items:
q.put(val)
Run Code Online (Sandbox Code Playgroud)
我正在生成15个线程。
for i in range(15):
tname = 't-%s' % i
t = my_thread(some_func, q, tname)
t.start()
q.join()
Run Code Online (Sandbox Code Playgroud)
my_thread类的外观如下:
class my_thread(threading.Thread):
def __init__(self, some_func, q_, name=''):
threading.Thread.__init__(self)
self.func = some_func
self.process_q = q_
self.name = name
self.prefix = name
def run(self):
stime = time.time()
logging.info('%s thread staring at : %s' % (threading.currentThread().getname(), time.ctime(stime)))
while True:
if self.process_q.empty():
break
queue_item = self.process_q.get()
self.name = self.prefix + '-' + …
Run Code Online (Sandbox Code Playgroud) 我有1d锦标赛队伍和2d"对手矩阵".
我只想提取每个队伍的对手名单.
我只是在学习Haskell并想知道,如果有人能想到下面已经运行的代码更优雅的解决方案.......也许列表理解?...
码:
findOp :: (Eq a, Num a) => [b] -> [a] -> [b]
findOp (x:xs) (y:ys) | y == 1 = [x] ++ findOp xs ys
| otherwise = findOp xs ys
findOp [] [] = []
tab = [[0,1,0,1],
[1,0,1,0],
[0,1,0,1],
[1,0,1,0]]
teams = ["team a",
"team b",
"team c",
"team d" ]
main :: IO ()
main = do
let games = map (\x -> (fst x, findOp teams $ snd x)) $ zip teams …
Run Code Online (Sandbox Code Playgroud)