博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python并发线程那些事
阅读量:6483 次
发布时间:2019-06-23

本文共 2002 字,大约阅读时间需要 6 分钟。

在python中并发是指一次处理多件事,而并行是指一次做多件事。也可以理解为在做事情时,或者计算机的资源需要处理时,在此时刻计算机需要处理资源时而把人做事情映射成计算机工作时可以或者互不干扰处理资源,这也就反射出貌似同步和异步处理时,这就是并行,而并发时计算机的资源需要处理时,在此时刻内具体负责处理的工作或事情,强调的是具体,某个时段内要做的工作,一个可以看做广度,这个可以看做深度,而此时并发处理的资源多了起来,很多的在此时高并发也就衍生出来了。     并发的解决方案有几下几种:     1,队列,缓冲区,                 队列先进先出,计算机排顺序的处理资源,                 缓冲区,资源处理前有一个缓冲地带可以处理时        2,争抢,                    资源需要处理时被某个程序也好,还是什么的东西,反正就是此资源被锁定了资源,而其他就只能继续等待这个资源值了,直到此资源被释放了在重新使用或运行等等。而争抢的模式的弊端在于一旦占据资源时导致其他得不到这个资源,也可能存在资源的浪费等等。        3,预处理,            资源值来临前需要提前需要预加载,预先做好一部分工作,如手机的缓存的功能等        4,提速,                    加强提高处理资源的工具,处理器cpu不行了,4核不够上8核,内层不够,8g ,16,32g等        5,消息中间件                    这个不同于缓冲,中间件常见的有RabbitMQ、ActiveMQ(Apache)、RocketMQ(阿里Apache)、kafka(Apache),反正就是买服务啦,第三方云等等。线程

python并发线程那些事

上面图片中此电脑中线程进程可以看一下,是指进程程对计算机程序中资源的分配和调度和使用,线程可以看做轻量级进程,包含在进程之内,线程存在就绪,运行,阻塞,终止四种状态。python中线程使用threaing库,        导入threading库即可。            import  threading
def a():    print("111111111111")    print("2222222222222222")t = threading.Thread(target=a, name='worker') # 线程对象t.start() #线程启动

在此创建了一个线程对象,target是目标函数,名称等,调用时需要启动start,python并没有线程退出的方案,要么继续执行完毕,或者抛出异常,

import threadingimport timedef worker():    count = 0    while True:        if (count > 5):            # raise RuntimeError(count) #抛出            # return            break        time.sleep(1)        print("I'm work------")        count += 1t = threading.Thread(target=worker, name='worker') t.start() print('==End==')

线程如何传参,

import threadingimport timedef add(x, y):    print('{} + {} = {}'.format(x, y, x + y, threading.current_thread().ident))thread1 = threading.Thread(target=add, name='add', args=(4, 5)) thread1.start() time.sleep(2)thread2 = threading.Thread(target=add, name='add', args=(5,), kwargs={'y': 4})thread2.start() time.sleep(2)thread3 = threading.Thread(target=add, name='add', kwargs={'x': 4, 'y': 5}) thread3.start()

线程的属性和方法:

在此有了start和run的方法,start和run就是start启动线程时每一个线程需要执行该方法一次,启动了一个新线程,而run时运行该线程函数,并没有启动一个新线程,只是一个普通函数而已。

转载于:https://blog.51cto.com/13890970/2326847

你可能感兴趣的文章
转: 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端
查看>>
easyui传入map的数据前台展示出tree格式数据
查看>>
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!
查看>>
java.math.BigDecimal
查看>>
Vitamio中文API文档(4)—— VitamioInstaller
查看>>
yii框架常用url地址
查看>>
python3.4学习笔记(十六) windows下面安装easy_install和pip教程
查看>>
MyGUI 解析
查看>>
Linux中的ls命令详细使用
查看>>
graph-tool文档(一)- 快速开始使用Graph-tool - 2.属性映射、图的IO和Price网络
查看>>
GraphicsLab Project之辉光(Glare,Glow)效果 【转】
查看>>
Linux Curl命令
查看>>
-27979 LoadRunner 错误27979 找不到请求表单 Action.c(73): Error -27979: Requested form not found...
查看>>
[LeetCode] Minimum Depth of Binary Tree
查看>>
,net运行框架
查看>>
Java 中 Emoji 的正则表达式
查看>>
Mixin Network第一届开发者大赛作品介绍- dodice, diceos和Fox.one luckycoin
查看>>
安卓Glide(4.7.1)使用笔记 01 - 引入项目
查看>>
中金易云:为出版社找到下一本《解忧杂货店》
查看>>
Flex布局
查看>>