当前位置:网站首页>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
read
Mé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
边栏推荐
- Junior college background, 2 years in Suning, 5 years in Ali. How can I get promoted quickly?
- 树莓派初步使用
- Embedded development: tips and tricks -- clean jump from boot loader to application code
- DAO 中常见的投票治理方式
- Drag drag drag
- 为什么有的程序员能力一般却能拿到好offer?
- 降低pip到指定版本(通過PyCharm昇級pip,在降低到原來版本)
- Cannot find reference 'imread' in 'appears in pycharm__ init__. py‘
- Common voting governance in Dao
- 磁盘的结构
猜你喜欢
AQS源码分析
NIO多路复用之Selector的使用
无心剑汉英双语诗003. 《书海》
CV2 package guide times could not find a version that satisfies the requirement CV2 (from versions: none)
[200 opencv routines] 209 Color image segmentation in HSV color space
刷题笔记(十八)--二叉树:公共祖先问题
leetcode:55. Jumping game [classic greed]
C language - keyword 1
leetcode:55. 跳跃游戏【经典贪心】
leetcode-201_ 2021_ 10_ seventeen
随机推荐
降低pip到指定版本(通過PyCharm昇級pip,在降低到原來版本)
The leader of ERP software in printing industry
Flutter 库冲突问题解决
Principle and application of queue implementation
华大04a工作模式/低功耗模式
Short video mall system, how does scroll view adapt to the remaining height of the page
How does flutter use the online transcoding tool to convert JSON to model
Binary search tree template
985测试工程师被吊打,学历和经验到底谁更重要?
CV2 package guide times could not find a version that satisfies the requirement CV2 (from versions: none)
Flutter: Unsupported value: false/true
[untitled]
How to grab the mobile phone bag for analysis? Fiddler artifact may help you!
Collective search + drawing creation
如何抓手机的包进行分析,Fiddler神器或许能帮到您!
Interviewer: you said you are proficient in redis. Have you seen the persistent configuration?
Filtered data analysis
Industrial development status of virtual human
Practice of hierarchical management based on kubesphere
Learning notes 23-- basic theory of multi-sensor information fusion (Part I)