Python 中的线程-进程1
2023-09-27 14:25:20 时间
原文:https://www.cnblogs.com/i-honey/p/8042047.html
1、 并行和并发
并行:同时做某些事,可以互不干扰的同一时刻做几件事。
并发:也是同时做某些事,但是强调,同一时刻做了几件事。
2、 并发的解决
1)队列、缓冲区:
排队就是队列,先进先出。排队是一种解决并发的方法。
排成的队列,其实就是一个缓冲地带,就是缓冲区。
2)优先队列:
在到达队列时优先处理,就是优先队列。
3)争抢:
资源被一个线程占据后,就会锁定资源,其它线程就需要等该线程释放资源再进程争抢。这是一种锁机制。
4)预处理:
提前加载线程需要的数据,缓存场景常用。
5)垂直扩展:
比如一台服务器无法快速处理高并发业务时,可以提升该服务器的内存、增加CPU性能和CPU数,这就是垂直扩展。
6)水平扩展:
也可以叫横向扩展,当一台服务器无法满足业务时,就增加服务器数量、带宽,这就是水平扩展。
7)消息中间件:
使用消息队列,比如RabbitMQ、ActiveMQ、RocketMQ、kafka等。这会涉及到生产者与消费者模型,后一篇文章会详细介绍。
3、 进程和线程
线程,是操作系统能够进行调度的最小单位,每个进程至少有一个线程,同一个进程内的线程可以共享进程的资源,每一个线程拥有自己独立的堆栈。
进程,是系统进行资源分配和调度的基本单位,是一个或多个线程的集合,在操作系统中,每个进程在内存中相对独立的,进程间不可以随便的共享数据。
4、 线程的状态
就绪Ready:
线程能够运行,但在等待被调度。可能线程刚刚创建启动,或刚刚从阻塞中恢复,或者被其它线程抢占.
运行Running:
线程正在运行
阻塞Blocked:
线程等待外部事件发生而无法运行,如I/O操作.
终止Terminated
线程完成,或退出,或被取消.
相关文章
- pqdm 是 tqdm 和 concurrent.futures 的 wrapper | 一个小而美的 Python 并行计算库 | 实现多进程显示进度条的优雅方案
- [ python ] 进程的操作
- Python:parser.add_argument()用法【命令行选项、参数、子命令解析器、sh脚本】
- 干货分享丨Python从入门到编写POC之爬虫专题
- python bottle + jieba分词服务
- Python并发编程之线程池/进程池
- Python实例浅谈之五Python守护进程和脚本单例运行
- 【python】多进程多线程
- Python 中的线程-进程2
- 【Python & turtle】绘制一个有趣的的Emoticons
- Python文件夹copy器(多进程版)学习笔记
- Python爬虫_Selenium与PhantomJS
- Python 多进程
- python numpy学习记录
- python小练习15 -- 进程间通信
- Python中判断字符串是否为数字、字母、标识符、浮点数、大小写、可打印的方法
- python编程(你的电脑能够执行多少线程和进程)
- python的进程间通信--共享内存
- Python pandas.DataFrame.items函数方法的使用
- python爬虫效率提升——多进程
- python之异步编程
- python学习笔记(十)——进程间通信
- logging of python
- python--数学运算函数
- 这个帖子要收藏,以后用得着--python 实时获取子进程输出
- python多进程--------linux系统中python的os.fork()方法
- python - 进程间通信-Queue
- Python - 多进程拷贝文件并显示百分比
- python其中一个子线程,则退出全部线程,再退出进程
- python多进程和多线程对于计算密集型任务的耗时对比
- python学习之爬虫(五)--高性能爬虫: 单线程爬虫、多线程爬虫、多进程爬虫、多线程池爬虫、协程池爬虫