「非同期IO」の版間の差分

削除された内容 追加された内容
編集の要約なし
115行目:
このほか、[[.NET Framework]]や[[Windowsランタイム]]の一部に非同期I/Oをサポートするメソッドが実装されている。[[C Sharp|C#]]などの.NET言語や[[C++]]においてこれらの非同期I/Oを利用するインフラとして、[[TPL]]や[[PPL]]が用意されている。
 
== その他 ==
== 非同期プログラミングの言語サポート ==
コールバックなどを利用した非同期IOの結果の取得は、設計やプログラミングが煩雑になる。特に出力よりも入力で問題が大きい。非同期プログラミングなどと呼ばれる、言語仕様あるいは高機能なライブラリでサポートされる構造化されたコールバックの利用は、この負担を軽減する。特に、スレッドも無くブロックしないイベントドリブンのプログラミングが必要なJavaScriptの場合が典型と言える。
<!-- WinRTやPPLはMS (Windows) プラットフォーム専用だが、.NETやTPLはクロスプラットフォーム実装がある。言語機能に関しては「Windows」の節で言及するべきではない。なお、「非同期プログラミング」と「非同期I/O」は視点が異なる。この記事内で非同期プログラミングにまで言及すべきかどうかは議論の余地あり。 -->
 
言語仕様でこれをサポートするものとしては、async/await構文による機能がある。C# 5.0/[[VB.NET]] 11以降や、[[Python]] 3.5以降[[非同期プログラミング]]を容易にするためのasync/await構文それ用意されてい使える。なお、[[F Sharp|F#]]には非同期ワークフロー (asynchronous workflow) と呼ばれる、TPLとは異なる独自のインフラを利用した非同期プログラミングのための機能が備わっている。C++では[[C++11]]にてライブラリでstd::asyncが標準化されたが、言語構文には組み込まれていない<!-- Visual C++ 2015ではawaitが実験的に実装されているが、標準化されているわけではない。 -->
 
== 関連項目 ==