重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
将你需要多线程并发执行的函数放入list中
成都创新互联专注于曲江企业网站建设,响应式网站,商城开发。曲江网站建设公司,为曲江等地区提供建站服务。全流程按需网站建设,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
import threading
threads = []
t1 = threading.Thread(target=函数名,args=参数)
threads.append(t1)
启动多线程
if __name__ == '__main__':
for t in threads:
t.setDaemon(True)
t.start()
t.join()
更多详细操作help(threading)
#coding=utf-8
import threading
from time import ctime,sleep
# 要启动的函数
def music(func):
for i in range(2):
print "I was listening to %s. %s" %(func,ctime())
sleep(1)
# 要启动的函数
def move(func):
for i in range(2):
print "I was at the %s! %s" %(func,ctime())
sleep(5)
threads = []
t1 = threading.Thread(target=music,args=(u'爱情买卖',))
threads.append(t1)
t2 = threading.Thread(target=move,args=(u'阿凡达',))
threads.append(t2)
# 函数加入线程列表
if __name__ == '__main__':
for t in threads:
t.setDaemon(True)
t.start()
t.join() #子线程完成运行之前,这个子线程的父线程将一直被阻塞,不会退出
print "all over %s" %ctime()
一直递归直到当某一个id没有‘father’或者‘father’是‘0’,这时候getNode(id)时候应该会返回‘0’,那么yield node 执行,返回这个node。然后递归回来输出每个遍历过的node
n=0时执行到了for i in range(2,n),这个range是个空列表[],故一次也不会进入for循环执行“ fibs.append(fibs[-1] + fibs[-2])”,,直接返回[1,1],故不报错
n=1返回[1]
n=2返回[1,1]
n=3及以上,进入for循环,fibs每次增加一个元素,其值为倒数第1个和倒数第2个元素之和
改为if ... elif...else可以如下:
def fib(n):
if n1:
return None
elif n == 1:
return [1]
elif n == 2:
return [1, 1]
else:
fibs = [1, 1]
for i in range(2, n):
fibs.append(fibs[-1] + fibs[-2])
return fibs
print (fib(10))