前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python–多线程threading

python–多线程threading

作者头像
kirin
发布2020-05-09 15:29:07
6460
发布2020-05-09 15:29:07
举报
文章被收录于专栏:Kirin博客Kirin博客

2020-2-11

线程是cpu分配和调度的基本单位

线程是进程的实体,一个进程里面可以有多个线程,但是多个线程同时只能属于一个进程

线程在执行过程中是共享内存的,它自身只需占用系统必不可少的内存即可,所以线程的并发

所消耗的内存也是最少的

单线程和多线程,有利有弊,

多线程的话在需要大量的计算量的情况下明显的提升了效率,而单线程就是一条路走到底,

执行完一个之后接着下一个,多线程的话,就是利用cpu的轮询机制,每个线程都执行一段时间

俗称雨露均沾,因为cpu的执行速度非常快1s可以执行10多亿次,人类是完全感觉不到他中间切换

的过程,所以就有了我们的多线程,

我们可以用 线程名(变量).join 来让该线程有优先执行权,后面的线程就会等待他执行完毕之后

再执行,也就是我们所说的vip,他就是多线程里边的靓仔,所以他有优先权,

但是用了多线程的话也是有坏处的,前面有提到过,就是线程和线程之间同时调用一个变量的时候,

会发生资源抢占,导致最后的结果并不正确,聪明的开发者想到了互斥锁这个东西,来解决了线程

之间的资源抢占问题。上互斥锁也很简单。下面有注释,

接触了一下python的多线程,其中线程分为3步

1,导入模块

2,创建线程

3,执行线程

首先我们来导入模块

import threading

这样模块就导入了,导入模块之后创建线程

a=threading.Thread(target=(需要执行的函数),args=(给函数传递的参数)) # 参数可以默认是元组,一个值的话要(i,),也可以是一个字典

a.start()# 这样就启动了线程了,是不是很简单呢,

还可以通过for来同时启动多个线程

可以给子线程加上守护主线程,(主线程挂掉之后子线程也会挂掉,默认是false,也就是不守护)

def work():

for x in range(10):

lock.acquier() # 这里表示上了互斥锁

print(‘这里是work’,x)

lock.release() # 这里表示释放了互斥锁

for x in range(10):

lock=threading.Lock() # 这里创建了一把互斥锁,

a=threading.Thread(target=(),args=())

a.start()

后面待续。。。。。。。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档