标签:blog 使用 for ar 2014 art 问题 log ad
python在多线程时,假如写了一个叫iamthreading的继承了多线程的类,如何启动它,就是个问题了。
这是什么问题呢?启动不这样嘛?
for i in xrange(threads_num): t = iamthreading() threads.append(t) for i in xrange(threads_num): threads[i].start() for i in xrange(threads_num): threads[i].join()
但是,不觉得太难看了吗?长久使用后,无法忍受,太难看了!
于是来个潇洒的->
while 1: iamthreading().start()一气呵成,可是,这样无法中止程序运行,停不下来,不满意。
于是,我这么写:
threads = [iamthreadingr() for i in xrange( threads_num )] if [(j.setDaemon( True ), j.start()) for j in threads] == [i.join() for i in threads]: print 'all wars are civil wars,because all men are brothers.'
看看python会不会这么做:
>>> from Queue import Queue >>> q = Queue(0) >>> q.put(9) >>> q.put(8) >>> q.put(7) >>> q.put(6) >>> if [1, 2, 3] == [q.get() for i in xrange(3)]: ... print "hei hei" ... >>> q.get() 6 >>>看来好像不会,python会产生完整个list再去比较。
再试一试:
>>> from Queue import Queue >>> q = Queue(0) >>> q.put(9) >>> q.put(8) >>> q.put(7) >>> q.put(6) >>> if [1,2] == [q.get() for i in xrange(3)]: ... print "hei hei" ... >>> q.get() 6 >>>这样就安心了,看来方法还不错。
标签:blog 使用 for ar 2014 art 问题 log ad
原文地址:http://blog.csdn.net/u010211892/article/details/38761303