BH10-多线程01

泡脚中。。。

最近想了不少,一直在想转型的事情,给自己立了个目标。

学习要坚定,一步一个脚印

越来越理解“年轻是最大的资本”这句话。

没有资格不努力,不负光阴不负卿!

===========================华丽的分割线========================================

今天上午着重学习了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('我是主线程-----')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值