平顶山普法网:NIO学习笔记,『从』Linux IO演化模型到Netty—— 究竟如何理解同步、异步、阻塞、非阻塞

admin 4周前 (10-30) 科技 70 1
Matplotlib“数据可视化从入门到精通”

我的观点

首先,分开各自理解。

1. 〖【同步】〗:描述两个(或者多个) 个体之间的协调关系[。

“『{比如}』”,单『线程』中,methodA【调用了】methodB,methodB返回后,methodA『才往下执行』,『那么称』A〖【同步】〗【调用了】B。

“『{比如}』”, 多『线程』中[,『线程』1 访问完某个资源[,才到『线程』2访问。

〖【同步】〗在一定的 互斥基础上,强调的是有序性。(另外,《互斥强调的》是排他性,我在用的时候你不许用。)

 

2. 【异步】:我觉得是指个体之间并没有协调关系,你走你的阳关道,我走我的独木桥。

“『{比如}』”,『线程』往『线程』池里面提交了FutureTask,就继续往下执行,A叫B帮自己倒杯咖啡,{而}A『自己干别的事去了』。

 

{阻}塞与非阻塞,都是『线程』或进程的状态。

3. 阻塞:『线程』或进程被挂起,《失去了》cpu的使用权。

4.非阻塞:就正常运行下去。

 

{非要把两种概念扯起来理解是没必要的},对于发生的一件事,【从两种不同的角度去理解即可】,《如果非要》根据这两种概念去造出一件事,那么很可能自己会混淆(易混淆的一个点为,〖【同步】〗和阻塞在某种层面上表现为“〖等〗”),{而}且这件事还不对。

 

 “『{比如}』” BIO中的accept(),调用时『线程』会一直阻塞,失去cpu【的使用权直到有人连上来】,《这时候》,假如『线程』又回到运行态,如果不去读取出来,『后面的』人还连不上。

 

 

 (注意『线程』每次系统调用时,要从用户态切换到内核态)

 

Vue中你可能认为是bug「的情况原来是这样的」

【到这里相信已经这几个概念已经比较清晰了】,还要说什么〖【同步】〗阻塞,〖【同步】〗非阻塞?

 

所见网上的例子,《我认为这样理》解是不恰当

老张[爱喝茶,废话不说,煮开水。

出场人物: 老张[,‘水壶两把’({普通水壶},‘简称水壶’; 会‘响’的水壶[,“简称‘响’水壶”)。

1 老张[把水壶〖放到火上〗,立〖等〗水开。(〖【同步】〗阻塞

老张[觉得自己有点傻

2 老张[把水壶〖放到火上〗,【「去客厅看电视」】,“时不时去厨房看看水开没有”。(〖【同步】〗非阻塞

老张[还是觉得自己有点傻,于是变高端了,『买了把会‘响’笛的那种水壶』。水开之后,(能大声发出嘀)~~~~的噪音。

3 老张[把‘响’水壶〖放到火上〗,立〖等〗水开。(【异步】阻塞

老张[觉得这样傻〖等〗意义不大

4 老张[把‘响’水壶〖放到火上〗,【「去客厅看电视」】,水壶‘响’之前不再去看它了,‘响’了再去拿壶。(【异步】非阻塞

 

【我只分析第】4点这里,‘响’了再去拿壶。

但是 老张[如果没有一直在听的话又怎么知道它‘响’没‘响’呢?<是不是可以把>一直在听也看作是一种轮询呢?那这样的话又和〖【同步】〗非阻塞的例子有什么不同呢?这绝不是找茬,“因为谁通知谁”,《怎么通知的》,怎么接收通知的,这很重要!

〖其他的例子更是漏洞百出〗。

我就说扯起来讲没必要吧。

 

{我的例子}

如果你真的要〖等〗某件事发生才能往下执行的话(〖【同步】〗),那你就应该阻塞〖等〗它完成(免得你一直问一直问,浪费资源)。如果你非阻塞,〖还不一直问他就执行往下执行干其他事去〗,那说明你并不是非〖等〗他完成不可,那何不〖等〗你真的要依赖他的时候再阻塞〖等〗候呢。

{而}【异步】说明这两个人没有关系,你做你的(【你可以】睡一觉阻塞,也可以不阻塞),“他做他”的。

,

sunbet

Sunbet www.Lfstncnynmzyhzs.com信誉来源于每一位客户的口碑,Sunbet的服务在sunbet行业是出名的顶尖,【广西禄福生态农业开发有限责任】公司欢迎新老会员、代理的加入。

网友评论

  • (*)

最新评论

  • Allbet手机版下载 2020-10-30 00:00:02 回复

    Allbet Gmaing官网欢迎进入Allbet Gmaing官网(www.aLLbetgame.us):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。有想法呀

    1