当前位置:网站首页>NiO, bio, AIO
NiO, bio, AIO
2022-06-24 22:20:00 【Nice2cu Code】
IOModèle
Catalogue des articles
Un.、Synchroniser、Asynchrone
- Synchroniser:Le thread lui - même fait la demande,Obtenir les résultats(Un fil)
- Asynchrone:Le thread lance le résultat lui - même,Mais ne pas obtenir les résultats,Au lieu de cela, un autre thread obtient le résultat et l'envoie à ce thread(Au moins deux fils)
2.、Le processus de lecture des données
Quand le thread utilisateur appelle channel.read Ou stream.read Après,Passe à l'état du noyau du système d'exploitation pour compléter la lecture réelle des données,Et la lecture est divisée en deux étapes,Respectivement::
- Attendre la phase de données
- Copier la phase de données

Trois、Blocage synchrone、Synchronisation non bloquante、Multiplexage synchrone、Asynchrone non bloquante
Blocage IO(Synchroniser)(BIO)
- Le thread utilisateur est bloqué,AppelezreadAprès la méthode,En attendant que l'espace du noyau lise les données,Aucune autre opération ne peut être effectuée,Je ne peux qu'attendre.

Non - blocage IO(Synchroniser)
- Le thread utilisateur n'est pas bloqué,AppelezreadAprès la méthode,Même si l'espace du noyau ne lit pas les données,Il reviendra.0,Boucle de thread utilisateur
readMéthodes,Ça ne bloque pas,Jusqu'à ce que la phase de réplication soit bloquée - La phase de réplication des données reste bloquée

- Le thread utilisateur n'est pas bloqué,AppelezreadAprès la méthode,Même si l'espace du noyau ne lit pas les données,Il reviendra.0,Boucle de thread utilisateur
Multiplexage(Synchroniser,Un seul fil s'adapteselectorUtiliser)(NIO)
- Blocage jusqu'à ce que l'événement se produise
- Le blocage se produit tant en phase d'attente qu'en phase de réplication(UniquechannelDu point de vue,C'est bloqué)
- PlusieurschannelDu point de vue,C'est non - bloquant,UnchannelAucune donnée dans,Ça ne bloque pas,Peut traiter d'autreschannel

Asynchrone non bloquante(Asynchrone IO)(AIO)
- Appel de l'utilisateurreadAprès la méthode,L'espace du noyau revient immédiatement,Informer de la demande de l'utilisateur,Une fois que l'espace du noyau a terminé l'opération correspondante,Le résultat est retourné par un autre thread
- Une fois l'espace du noyau terminé,La méthode de rappel est appelée pour renvoyer les données
- En raison du retour immédiat,Alors...Asynchrone ne doit pas être un blocage,Donc asynchrone doit être non bloquante

Blocage IO vs Multiplexage(Tous synchronisés)
- BlocageIO,Une connexion ne peut pas être traitée avec une autre connexion,Si vous voulez gérer une nouvelle connexion,Vous devez attendre la fin du traitement complet de la dernière connexion avant de pouvoir traiter la nouvelle connexion
- Multiplexage,Un selector Peut traiter plusieurs channel Les événements de,Un channel Quand il n'y a pas de données,Le thread n'a pas besoin d'attendre,Peut gérer d'autres choses

边栏推荐
- How to refine permissions to buttons?
- Several schemes of traffic exposure in kubernetes cluster
- Development of live broadcast software app, and automatic left-right sliding rotation chart advertising
- C language - keyword 1
- 好想送对象一束花呀
- 如何抓手机的包进行分析,Fiddler神器或许能帮到您!
- Industrial development status of virtual human
- Réduire le PIP à la version spécifiée (mettre à jour le PIP avec pycharm avant de le réduire à la version originale)
- Raspberry pie preliminary use
- 波卡生态发展不设限的奥义——多维解读平行链
猜你喜欢

How to grab the mobile phone bag for analysis? Fiddler artifact may help you!
![leetcode:515. Find the maximum value in each tree row [brainless BFS]](/img/87/1926d783fb6f8d8439213d86b5da40.png)
leetcode:515. Find the maximum value in each tree row [brainless BFS]

Want to be a test leader, do you know these 6 skills?

Xinlou: Huawei's seven-year building journey of sports health

Common voting governance in Dao
![[200 opencv routines] 209 Color image segmentation in HSV color space](/img/fa/9a40015cbcf9c78808f147e510be4c.jpg)
[200 opencv routines] 209 Color image segmentation in HSV color space

排查到解决问题的过程:浏览器突然无法访问网页,错误代码:0x80004005,最终定位:“电脑打开热点,电脑就不能上网了”

Ideal L9, new trend of intelligent cockpit

Rotate the square array of two-dimensional array clockwise by 90 °

性能测试工具wrk安装使用详解
随机推荐
Servlet详解
04A中断的配置
Industrial development status of virtual human
进程的通信方式
How does flutter use the online transcoding tool to convert JSON to model
Interviewer: you said you are proficient in redis. Have you seen the persistent configuration?
These map operations in guava have reduced my code by 50%
Docker 安装 Redis-5.0.12,详细步骤
leetcode:55. 跳跃游戏【经典贪心】
树莓派初步使用
NIO、BIO、AIO
SAP interface debug setting external breakpoints
EasyBypass
leetcode_ 1470_ 2021.10.12
Reduce the pip to the specified version (upgrade the PIP through CMP and reduce it to the original version)
Collective search + drawing creation
壹沓科技签约七匹狼,助力「中国男装领导者」数字化转型
干货丨产品的可行性分析要从哪几个方面入手?
How to grab the mobile phone bag for analysis? Fiddler artifact may help you!
关于自动控制原理资料更新