ブロッキング、非ブロッキング、同期、非同期

同期、非同期の概念、ブロッキング、非ブロッキング、すべてのIO(入出力)。最も簡単なのは、ファイルIO操作を読むことです。そして、この場合、子供たちは、ファイルを読むためには、あなたはさまざまな方法を持つことができます。

何が同期および非同期であります

同期要求、Aは、B、Bは、彼がAに気づかないことを前処理、同期処理で呼び出しのみ通知処理Aの終了後には明らかであろう

非同期リクエストはなど、AがBを呼び出します、Bは非同期処理、私は要求を受け取った要求に応じてのtell Bで、その後、処理した後、非同期処理に行き、その後、A.コールバックで通知します

だから、同期および非同期の最大の違いはある呼び出し側の実装返信タイミング同期は呼び出し元に行われているものを指した後、非同期返し、その後、物事を行う、仕上げ後に、発信者に通知する方法を考えるために呼び出し先を指します。

 

何ブロックしているとノンブロッキング

要求をブロックし、Aは、BはBが何もしないために何か他のものの帰りを待っている、呼び出します。

リクエストをノンブロッキング、AはBを呼び出します、いないBは、他のものと忙しいに行き、帰りを待っています。

そのため、非ブロックの最大の違いを遮断することが、発信者が待っている場合はこの期間では、呼び出し側の結果が返される前にということです。ブロッキングは、呼び出し側が何もしないために何か他のものを待っていることを意味します。非ブロッキングは他のものと忙しいに行く発信者を指します。

同期、非同期のブロッキングと非ブロッキングの差

その同じではないという事実のためにまず、すでに述べたように、ブロック、非ブロック、同期、非同期のターゲット。発信者を話して、非ブロッキングをブロックする同期、非同期呼び出し先と言いました

一部の人々は、それは一つのことを子供の障害物との同期、非同期および非ブロックで一つのことだと思います。しかし、これは権利ではありません。

JavaのIOで3つのモデル

Java言語では、IOの合計、すなわち、三つのモデルを提供するIOブロック(BIO)、非ブロッキングIO(NIO)、非同期IO(AIO)を。

BIOとNIOはつまり、IOモデルを同期しているがあります、同期のブロッキングIOとIOの同期を非ブロック、非同期IOは、非同期の非ブロッキングIOを指します。

BIO(I / Oブロッキング):同期ブロッキングI / Oモードは、読み出しデータは、スレッド内でその完了を待ってブロックされるように書かれています。

NIO(新しいI / O)は:ブロックと非ブロックモードの両方をサポートしていますが、主に、同期の非ブロッキングIOを使用しています。

AIO(非同期I / O) 非同期I / Oモデルを非ブロック。

 

例えば:

BIOは、(I / Oブロッキング):水を沸騰させるケトル内の行があり、操作のBIOのモードは、やかんがやかんで治療を行く前に、沸騰するまで、ケトルで立ち往生したスレッドと呼ばれています。しかし、実際にはスレッドが一定の期間が何もしなかった沸騰するやかんのを待っています。

NIO(新しいI / O):NIOアプローチは、スレッド継続的にポーリング状態の各やかんがケトルステータスが変化したかどうかを確認するために呼ばれるので、操作の次のステップです。

AIO(非同期I / O):一つのスイッチが各ボトルの上に設置され、水を沸騰させた後、やかんは自動的に私が沸騰通知されます。

 

JavaのオペレーティングシステムまたはIOモデルによりIOは、しかし唯一のオペレーティングシステムのIOモデルをパッケージ化されています。

 

よりエキサイティングな、マイクロチャネルを掃引:

 

 

 

 

オリジナルます。https://mp.weixin.qq.com/s __biz = MzU4NzkwNTMzMg ==&ミッド= 2247483902&IDX = 2&SN = 835c5edc9478a2d2e91575fcc302dfba&chksm = fde5a1a5ca9228b3d583d359e3d48e01d7b2296e924d6c10c426b8f01299923522c61bb3c995&mpshare = 1&シーン= 23&SRCID =&sharer_sharetime = 1569287484750&sharer_shareid = 570a2ed1c2a256d708a76b434f2d7246#RD?

 

おすすめ

転載: www.cnblogs.com/mzdljgz/p/11576490.html