泡脚中。。。
最近想了不少,一直在想转型的事情,给自己立了个目标。
学习要坚定,一步一个脚印
越来越理解“年轻是最大的资本”这句话。
没有资格不努力,不负光阴不负卿!
===========================华丽的分割线========================================
今天上午着重学习了Django的数据库API,在公司的电脑上,还没来得及整理。明天早上应该会整理成下一篇博文。
晚上学习了多线程基础,最近的学习路线是Django和python进阶并行。
下面是今天的学习内容,相关知识点已经整理在代码笔记上。关于多线程应该还会整理1~2篇博文。
#coding=utf-8
'''
Created on 2018年3月14日
@author: Administrator
'''
'''
概念性知识:
(1) 主线程:系统创建进程时,会自动创建一个线程,这个线程被称为主线程。一个进程有且只有一个主线程
(2) python意义上的多线程不是真正意义上的多线程,即鸡肋,
由于设置了全局锁,因此在任意时间内,有且只有一个线程在运行。
(3)多线程是使用同一cpu,而多进程可以使用不同核cpu,并且线程编程交危险与复杂,在提升效率方面可以考虑多进程。
线程基础:
(1) import threading 引入线程模块
(2) 使用 threading.Thread(target=test,args=[i])创建线程。
其中target=function,function代表函数,也是我们开发人员需要编写的部分。
args=[n],n表示传入函数的参数。args一定是列表。
(3) start()启动线程
(4) join() 等待的作用,通俗的讲就是让主线程等待子线程执行完成后再执行,不加的话主线程就不会等待,到他了他就执行。
同时等待也有timeout,join(timeout)
这个可以理解为:跟团出去旅游,导游说10点前必须回来啊!,不会来我们不会等你的。
于是大家都出去看风景了(def kanfengjing():)
等大家都回来了准备上车出发(上车出发是导游即主线程要干的事)
相关模块:
(1)time
*time.sleep(second):休眠,单位:秒
'''
import threading
import time
def test(x):
time.sleep(0.1)
print(x)
if __name__ == '__main__':
tlist=[]
for i in range(10):
th=threading.Thread(target=test,args=[i])
th.start()
tlist.append(th)
for i in range(len(tlist)):
tlist[i].join()
print('我是主线程-----')