在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现 ...
分类:
编程语言 时间:
2019-04-14 09:44:31
阅读次数:
133
在IO操作的过程中,当前线程被挂起,而其他需要CPU执行的代码就无法被当前线程执行了。 我们可以使用多线程或者多进程来并发执行代码,为多个用户服务。 但是,一旦线程数量过多,CPU的时间就花在线程切换上了,真正运行代码的时间就少了,结果导致性能严重下降。 异步IO:当代码需要执行一个耗时的IO操作时 ...
分类:
编程语言 时间:
2019-04-09 00:28:38
阅读次数:
158
一 高性能IO模型 1. 同步IO、异步IO、阻塞IO、非阻塞IO 通过IO模型介绍异步、同步、阻塞、非阻塞的IO看,本节参考文章: https://www.cnblogs.com/euphie/p/6376508.html 这里统一使用Linux下的系统调用recv作为例子,它用于从套接字上接收一 ...
分类:
其他好文 时间:
2019-03-30 18:38:55
阅读次数:
163
参考链接: asyncio:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432090954004980bd351f2cd4cc18c9e6c06d855c498000 a ...
分类:
编程语言 时间:
2019-03-30 10:37:11
阅读次数:
207
同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 一 概念说明 在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O 用户空间与内核空间 现在操作 ...
分类:
其他好文 时间:
2019-03-15 20:43:22
阅读次数:
174
[toc] 1 同步与异步 同步和异步关注的是程序在执行时的状态: ,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。 ,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接 ...
分类:
其他好文 时间:
2019-03-11 20:04:27
阅读次数:
198
asyncio模块:示例一 asyncio模块:示例二 asyncio模块+aiohttp模块:示例三 asyncio模块+requests模块:示例四 gevent模块+requests模块:示例五 grequests模块:示例六 twisted模块:示例七 tornado模块:示例八 twist ...
分类:
编程语言 时间:
2019-03-08 20:55:59
阅读次数:
202
网络编程里常听到阻塞IO、非阻塞IO、同步IO、异步IO等概念,总听别人装13不如自己下来钻研一下。不过,搞清楚这些概念之前,还得先回顾一些基础的概念。 1 基础知识回顾 注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~~ 1.1 用户空间和内核空间 现在操作系统都采用虚拟寻址, ...
分类:
其他好文 时间:
2019-03-04 15:57:31
阅读次数:
149
python之IO多路复用 阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 异步IO(Asynchronous I/O) 六 IO模型比较分析 七 selectors模块 一 ...
分类:
编程语言 时间:
2019-02-27 17:47:52
阅读次数:
179
1 并发、并行、同步、异步、阻塞、非阻塞 并发、并行 并发是报一个时间段内有几个程序在同一个cpu上运行,但是任意时刻只有一个程序在cpu上运行。在一个时间段内某一个请求很快,能够响应的用户就越多,高并发。 并行是指任意时刻点上,有多个程序同时运行在多个cpu上,并行数量跟CPU数一致的,因此没有高 ...
分类:
其他好文 时间:
2019-02-16 00:06:45
阅读次数:
227