RustのFutureとasync/awaitは、「時間のかかる処理」をするときに、「処理が終わるまでOSスレッドをブロックする(同期Rust)」のではなく、「当該処理を中断して、そのOSスレッドを別のタスクの処理に使う(非同期Rust)」ことで、スレッド数よりも多くの処理を同時に行う仕組みです。 同期Rustと非同期Rustには以下のようなアナロジーが成立します。 同期Rust 非同期Rust
AsyncHttpClientによるファイルのアップロード 前回に引き続き、Javaライブラリ「AsyncHttpClient」を用いた非同期HTTP通信について紹介する。ここまでの例ではGETリクエストによるデータの取得のみを扱っていたが、今回はファイルのアップロードについて考えてみよう。 AsyncHttpClientでは当然ながらGET以外のリクエストもサポートされている。それには、たとえばprepareGet()メソッドの代わりにpreparePost()やpreparePUT()などのメソッドを使用すればよい。さらに、ファイルの送信などを行う場合には、もっと便利な方法としてリクエストクエリを生成するcom.ning.http.client.RequestBuilderというクラスが用意されている。このクラスでは、リクエストに含める内容をsetXXXX()というメソッドに渡すことで
HandlerベースのAPIで非同期HTTP通信を試す 前回は、非同期HTTP通信を行うためのJava用クライアントライブラリ「AsyncHttpClient」を紹介した。AsyncHttpClientには、非同期HTTP通信を行うための方法として2種類のAPIが用意されており、前回解説したのはそのうちのFutureベースのAPIの使い方である。今回は、もうひとつの方法であるHandlerベースのAPIについて紹介する。 HandlerベースのAPIでも、最初にAsyncHttpClientのインスタンスを生成し、prepareXXX()メソッドを用いてリクエストを生成する部分までは同様である。FutureベースのAPIの場合はこのprepareXXX()メソッドの戻り値に対して引数なしのexecute()メソッドを実行したが、HandlerベースのAPIでは、execute()の引数とし
Java用の非同期HTTP通信ライブラリ AsyncHttpClentはJavaプログラムにおいて非同期のHTTP通信を行うためのクライアントライブラリである。Javaに標準で付属するHTTP通信用のUrlConnectionクラスは最低限の機能しか実装されていない。ApacheのJakarta Commonsプロジェクトの成果物であるApache HttpClientは高性能ではあるが、クライアントプログラムはサーバからのレスポンスを待ってから処理する同期通信を行う。また、メモリ上にバッファリングを行うため巨大なファイルの送受信に適していないことや、I/OライブラリがApache HttpClientで提供されるものしか使えないといった問題がある。 AsyncHttpClientの場合、クライアントプログラムがサーバのレスポンスを待たずに処理を続行する非同期通信を行うことができる。速度優
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く