文章目录一.网络编程二.socket编程三.并发编程一.网络编程二.socket编程三.并发编程
原创
2021-09-29 15:16:07
321阅读
我们需要用到并发编程的地方无非两个原因:1、需要用到大量计算资源,成为计算(/CPU)密集型。2、需要处理一些耗时的操作,比如读写磁盘、接收网络数据,成为吞吐(/IO)密集型。而实现并发编程的方法总的来说也可以分为两类:通过多线程解决,或者通过多进程来解决。由于python存在全局解释器锁(GIL)的原因,其实python的多线程更适合于IO密集型的任务,因为一个解释器在任何时候只能有一个线程在占
转载
2023-08-15 21:17:30
57阅读
01 网络编程-软件开发架构 OSI七层协议 以太网协议 IP 端口 TCP UDP 02 TCP的三次握手四次挥手理解及面试题 03 socket套接字使用 TCP连接通讯循环 TCP粘包问题 struct模块 TCP发送文件 04 UDP协议 TCP UDP基于socketserver的并发 0 Read More
原创
2021-09-04 17:22:39
1054阅读
文章目录一、相关概念1、同步和异步2、并发和并行3、临界区4、阻塞和非阻塞5、死锁、饥饿和活锁二、并发级别1、阻塞2、无饥饿3、无障碍4、无锁5、无等待三、JMM1、原子性2、可见性3、有序性4、Happen-Before 原则 一、相关概念1、同步和异步同步:线程 A 调用一个方法,必须等到方法调用返回后,线程A才能继续运行异步:线程 A 调用一个方法,然后继续执行;而这个方法一般会在另一个线
转载
2023-08-10 19:53:37
62阅读
案例引入 假如你们一家已上市的电商公司,在元旦来临前夕,领导需要你模拟用户,通过接口生成10万笔新订单。你该
原创
精选
2023-11-17 11:08:03
234阅读
案例引入 假如你们一家已上市的电商公司,在元旦来临前夕,领导需要你模拟用户,通过接口生成10万笔新订单。你
原创
精选
2023-11-17 11:05:49
216阅读
随着软件行业的飞速发展,互联网公司对开发者的技能要求也越来越高。而高并发、网络编程、微服务、海量数据的处理等技能,是每一个开发者进阶时的必学知识。为了帮助初级开发者快速掌握这些实用技术,本书以“理论+范例”的形式对各个知识点进行了详细的讲解,力争让读者在实践中快速掌握相关知识。本书由核心技术、应用框架和数据处理三部分组成。核心技术介绍了与高并发相关的架构设计及多线程、NIO、网络编程等底层技术;应
转载
2024-01-10 19:48:51
45阅读
前言随着软件行业的飞速发展,互联网公司对开发者的技能要求也越来越高。而高并发、网络编程、微服务、海量数据的处理等技能,是每一个开发者进阶时的必学知识。为了帮助初级开发者快速掌握这些实用技术,本书以“理论+范例”的形式对各个知识点进行了详细的讲解,力争让读者在实践中快速掌握相关知识。内容提要本书以实战化训练为宗旨,用详尽且经典的案例阐述了Java高级编程中的重点、难点。每个案例都配有精练的描述和完整
转载
2023-09-14 16:37:05
136阅读
开启并发进程:方式一:import time
from multiprocessing import Process
def task(name):
print('%s is running' % name)
time.sleep(5)
print('%s done' % name)
if __name__ == '__main__':
p1 = Proce
转载
2023-09-29 21:28:20
144阅读
python 高性能编程 异步并发编程 asyncio异步并发编程-相关概念同步:按照顺序执行:js同步的实现
异步:非同步。一起执行,但是异步不一定就是多线程,比如JavaScript 的运行时是跑在单线程上的,所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。主线程之外,还存在一个”任务队列”(task queue)。只要异步任务有了运行结果,就在
转载
2023-10-31 12:46:03
162阅读
基础知识(一)一、为什么需要多线程和多线程需解决的问题我认为并发编程的产生实际是一种妥协,在硬件生产技术或者说成本的限制下导致了计算机运行的各个部件之间有了运行速度上的差异,为了最大化发挥计算机的计算能力并最小化所需付出的成本而通过一系列复杂的、抽象的手段进行速度提升。 试想如果我们现行技术能够做到所有的存储介质传输速度等同于CPU计算速度,任何数据计算传输近乎实时,那也就不需要并发了。同时我们
1 golang写服务器不需要epoll吗 golang写服务器不需要在用reactor模式的epoll了,因为golang的协程非常廉价,可以并发开启成千上完个协程。 一个协程占用内存大概2KB左右,一个线程占用内存大概2MB左右,一个线程抵1000个协程。 所以,用golang写服务器程序会简单
转载
2019-08-07 17:06:00
771阅读
2评论
前言上一篇介绍了多线程编程,这一篇介绍多进程编程,当然应用场景是CPU密集型任务。分类都是采用multiprocessing模块,只不过应用的类和方法不同使用Pool对象的map方法使用Pool对象的apply_async方法使用Process类下面分别介绍使用Pool对象的map方法与上一篇类似,multiprocessing模块的Pool对象具有map方法,应用map方法可以很便捷地实现多线程
转载
2023-09-22 12:06:36
26阅读
1、概念并发:在一段时间内交替去执行任务。 并行:对于多核cpu处理多任务,操作系统会给cpu的每个内核安排一个执行的软件,多个内核是真正的一起执行软件。这里需要注意多核cpu是并行的执行多任务,始终有多个软件一起执行。进程:一个正在运行的程序或者软件就是一个进程,它是操作系统进行资源分配的基本单位,也就是说每启动一个进程,操作系统都会给其分配一定的运行资源(内存资源)保证进程的运行。线程:是进程
转载
2023-08-05 10:35:58
89阅读
在 Python 学习的过程中,并发编程有些概念我们可能在理解上有些模糊,这些概念却很重要。下面我讲逐一解释一下并发和并行,同步和异步,阻塞和非阻塞。并发&并行并发:在 OS 中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。简言之,是指系统具有处理多个任务的能力。并行:当系统有一个以上 CPU
转载
2023-06-17 21:53:10
2160阅读
多进程和多线程的守护区别 首先明确一点,无论是多进程还是多线程,主进程或主线程都会等待子进程或子线程退出才会退出。 无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁. 需要强调的是:运行完毕并非终止运行 1. 对主进程来说,运行完毕指的是主进程代码运行完毕 2. 对主线程来说,运
原创
2021-12-27 17:36:58
156阅读
正确合理地使用并发编程,无疑会给我们的程序带来极大的性能提升。今
转载
2021-07-12 08:40:00
111阅读
2评论
以下链接均来自网络
『Python并发编程』
理解Python并发编程一篇就够了 - 线程篇理解Python并发编程一篇就够了 - 进程篇使用Python进行并发编程-PoolExecutor篇使用Python进行并发编程-我为什么不喜欢Gevent使用Python进行并发编程-asyncio篇(一)使用Python进行并发编程-asyncio篇(二)使用Python进行并发编程-asyncio
转载
2018-05-23 14:15:00
94阅读
2评论
同步和异步强调的是消息通信机制 (synchronous communication/ asynchronous communication)。同步(synchronous):A调用B,等待B返回结果
原创
精选
2024-10-08 12:16:03
269阅读
thread库 生产者和消费者问题 队列,并发在队列中写入或读取数据
原创
2022-05-20 22:41:17
125阅读