请求描述: `阻塞/非阻塞` 和 `同步/异步` 不是一个概念。举几个简单的例子。 当进程调用一个进行IO操作的API时(比如read函数),在数据没有到达前,read 会挂起,进程会卡住。在数据读取完毕返回给进程时, read 返回(返回值为读取到的字节数,数据从内核拷贝到用户空间),然后进程继续 ...
分类:
其他好文 时间:
2018-05-01 12:39:52
阅读次数:
201
1、阻塞与非阻塞指的是程序的两种运行状态: 阻塞:遇到I/O,程序停在原地,并立即释放CPU资源 非阻塞(就绪态或运行态):没有遇到I/O,或者通过某种手段让程序即便是遇到I/O也不会停原地,力求尽可能多占用CPU资源 2、同步与异步指的是提交任务的两种方式: 同步调用:提交完任务后,就在原地等待, ...
分类:
其他好文 时间:
2018-04-27 21:18:10
阅读次数:
166
一、GIL:全局解释器锁 1 、GIL:全局解释器锁 GIL本质就是一把互斥锁,是夹在解释器身上的, 同一个进程内的所有线程都需要先抢到GIL锁,才能执行解释器代码 2、GIL的优缺点: 优点: 保证Cpython解释器内存管理的线程安全 缺点:同一进程内所有的线程同一时刻只能有一个执行,也就说Cp ...
分类:
编程语言 时间:
2018-04-27 16:49:41
阅读次数:
181
GIL 多进程多线程使用场景 线程互斥锁与GIL对比 基于多线程实现并发的套接字通信 进程池与线程池 同步、异步、阻塞、非阻塞 ...
分类:
编程语言 时间:
2018-04-27 16:47:39
阅读次数:
226
、同步异步、阻塞非阻塞(目前不是很清楚,这篇博客写完后,后续进行处理) 1.同步和异步:关注的是消息的通讯机制, 同步:发起调用后,如果没有得到结果,该调用是不会返回的;该调用者会主动等待调用返回。 异步:发起调用后,调用立刻返回,但并不是返回的结果;也就是说调用者并不会立刻得到结果,而是被调用者通 ...
分类:
编程语言 时间:
2018-04-26 16:49:18
阅读次数:
166
阻塞/非阻塞 都是 同步 的状态, 异步 不存在 阻塞/非阻塞 的情况。 同步:执行一个操作之后,等待结果,然后才继续执行后续的操作。 异步:执行一个操作后,可以去执行其他的操作,然后等待通知再回来执行刚才没执行完的操作。 阻塞:进程给CPU传达一个任务之后,一直等待CPU处理完成,然后才执行后面的 ...
分类:
其他好文 时间:
2018-04-18 20:15:09
阅读次数:
146
同步阻塞,用户空间的应用程序执行一个系统调用,这意味着应用程序会一直阻塞,直到系统调用完成为止(数据传输完成或者发生错误)。 同步非阻塞,设备以非阻塞形式打开,这意味着 io 操作不会立刻完成,需要应用程序调用多次来等待完成。 同步和异步 1)同步:发出一个调用时,在没有得到结果前,该调用就不返回, ...
分类:
其他好文 时间:
2018-04-16 19:51:40
阅读次数:
162
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 散仙不才,在查了一部分资料后,愿试着以通俗易懂的方式解释下这几个名词。如有不足之处,还望告知。 在弄清楚上面的几个问题之前,我们首先得明白什么是同步,异步,阻塞,非阻塞,只有这几个单个概念理解清楚了,然后在组合理解起来,就 ...
分类:
其他好文 时间:
2018-04-12 22:17:03
阅读次数:
208
Java 同步与异步 阻塞与非阻塞理解 Java 中同步与异步,阻塞与非阻塞都是用来形容交互方式,区别在于它们描述的是交互的两个不同层面。 同步与异步 同步与异步更关注交互双方是否可以同时工作。以同步的方式完成任务意味着多个任务的完成次序是串行的,假设任务 A 依赖于任务 B,那么任务 A 必须等到 ...
分类:
编程语言 时间:
2018-04-07 19:03:33
阅读次数:
147
四 同步\异步and阻塞\非阻塞(重点) 同步: 异步: 阻塞: 非阻塞: 小结: ...
分类:
编程语言 时间:
2018-03-31 21:32:08
阅读次数:
152