Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

function f ( ) { do_something(); do_another(); do_one_more(); } このプログラムでは順番に3つの関数を呼び出していますが、各関数呼び出しの間でいったんスレッドの実行権を他のJavaScriptコードに渡したいとします。これは次のように、各関数呼び出しをそれぞれ別の関数に分けて、間にsetTimeoutを挿むようにプログラムを書き換えることで実現できます。 function f ( ) { do_something(); setTimeout(f1, 1); // 1ミリ秒後にf1を呼び出す } function f1 ( ) { do_another(); setTimeout(f2, 1); } function f2 ( ) { do_one_more(); } こうして書き換えた関数fを、 f(); f(); のようにし
Tomcat 7も対応したServlet 3.0の変更点 後編:Tomcat 7の新機能で何ができるようになるのか?(2)(1/3 ページ) 前回の「Tomcat 7も対応したServlet 3.0の6つの主な変更点」では、「Tomcat 7」が実装したServlet 3.0の新機能のうち「Ease of Development(EoD、開発容易性)」「Pluggability and Extendibility(モジュール化と拡張性)」について紹介しました。今回はAsynchronous processing(非同期処理)、セキュリティ、Session Tracking、マルチパート対応を紹介します。 アノテーションによる非同期処理 Servlet 3.0から非同期処理が使えるようになりました。Servlet 2.5までは、Servlet上でスレッドを生成・起動し、リクエストやレスポンス
スレッドは正常終了できる場合、クラスの不変条件(invariant)を維持する。タスクが完了した場合やリクエストが取り消された場合、プログラムやJVMを早急にシャットダウンしなくてはならない場合には、プログラマがスレッドを強制終了しようとすることが多い。 スレッドの中断、再開および強制終了をサポートするために、いくつかのスレッド管理APIが導入されたが、設計上の欠陥から、後に非推奨(deprecated)とされた。たとえば、Thread.stop()メソッドを呼び出すと、ただちにThreadDeath例外がスローされるが、これは通常、スレッドを停止させる。非推奨メソッドについては、「MET02-J. 非推奨(deprecated)あるいは廃止された(obsolete)クラスやメソッドを使用しない」を参照。 Thread.stop()メソッドの呼出しによりスレッドが獲得したロックはすべて解放
Java僕のことです。はい。 ちょっと調べながら書きます。 ちなみに僕がプログラミングを本格的(?)にしたのってここ2年くらいなんですよね。 就職すればプログラマになれるって本気で信じてました。あの頃の僕は死んでください。 んで、このままじゃダメだって気付いて勉強し始めたの最近なんで、ちょっと生暖かい目で見てください。 んで、なんでスレッドセーフかというと。。 JavaにStringで"文字列"の"X文字目"に"渡された文字列"を追加するメソッドないっけ?ってAPI眺めてる。— 綺人(社畜のゴミコード食らい)さん (@ayato0211) 2月 8, 2012 この発言のあとにStringBuilder.insert使えばいいじゃないって言われたんですね。 で、幾つか会話を重ねた後に、StringBuilderはスレッドセーフじゃないよって言われて、「スレッドセーフってなんだ?」という状態
4.4. スレッドを停止させるには stopメソッドは推奨されないメソッドでした。それでは、スレッドを停止させるにはどうすれよいのでしょうか。 スレッドが自分自身を終了させるには、実行中のrunメソッドを終了するようにしておきます。startメソッドによって新しく起動されたスレッドは、runメソッドが終了すると消滅します。 自分以外のスレッドを終了させるには、一般的に次のような方法を用います。 runメソッドを実装したクラスで、スレッドの実行状態を表現するboolean型変数を宣言する。 runメソッド内で、繰り返しスレッドの実行状態を確認し、実行状態が「終了」を示す値になっていればrunメソッドが終了されるようにしておく。 そのスレッド実行状態を変更するためのメソッドを宣言する。 スレッド実行状態を「実行中」を示す値に設定し、新しいスレッドを起動する。 外部から、スレッド実行状態を変更す
Java の ExecutorService でスレッドプールを利用できる ここで説明するのは、おそらくもっとも安全にマルチスレッドプログラムを書く方法です。 さらに同様の方法で簡単に拡張することで、複数のスレッドを効率よく使うスレッドプール (Thread Pool) を利用できますので、 ぜひ覚えておきたい方法です。 その方法とは、 ExecutorService を利用することです。 ExecutorService では、 「Java のマルチスレッド・プログラミングの基本」 でみたように Thread オブジェクトをそのまま生では使いません。 ExecutorService ではスレッドプールが用意されるので、そこにタスクがディスパッチされることで処理が行われます。 Java のタスクの状態 Executor によって処理されるタスクの状態は次の四つです。 created (作成さ
自分のプログラム内で一意となるIDを振りたいなら、使えるのはUIDやVMIDだろうか。他のは よー分からん(爆) System.out.println(new UID()); System.out.println(new VMID()); File#createTempFile() 例えばUIDやVMIDを使って重複しない一時ファイル名を生成するという使い道も考えられる。 ただしUID#toString()は「1b32f29a:11beb5202b3:-8000」の様にコロン「:」を含むため、Windowsではそのままではファイル名には使えない。String#replace(':', '_')とかで変換してやる必要がある。(VMIDも同様) でも、一時ファイルを生成するにはFile#createTempFile()を使うのが一番素直でしょう。 Thread#getId() Thread#g
マルチスレッドとは? スレッド (thread) というのは平たく言えば、プログラムの処理の流れのことです。 マルチスレッドというのは、スレッドが複数ある状況です。つまり、複数の処理が同時に行われることになります。 Java でのマルチスレッドプログラミングの基本 Java でマルチスレッドにするにはまず、Runnable インターフェイスを実装した Runnable オブジェクトを作成します。これが処理単位になることから、 Runnable オブジェクトはタスクと言い換えられたりします。 Runnable インターフェイスは run メソッドを一つだけ持つ単純なインターフェイスです。 このタスク (Runnable オブジェクト) をスレッドオブジェクトに渡し、スレッドを開始すると、タスクの所定の処理が行われます。 これが Runnable インターフェイスの run メソッドの実行とい
今度リリースされる、Java7の新クラスの1つである「TransferQueue」を使ってみました。 説明によると、TransferQueueはQueueのクラスで、あるスレッドがこのQueueにオブジェクトを 追加すると、別のスレッドがQueue内の先程追加されたオブジェクトを削除しないと オブジェクトを追加したスレッドに制御が戻らない。とのこと。 言葉で説明しても、うまく伝わらないので、早速使ってみます。 その前に、まずはJava7のダウンロードから。ダウンロードはこちらから↓ https://jdk7.dev.java.net/ 早速、Eclipseの設定画面でJava7を指定してみたけど、コンパイラー準拠レベルには1.6までしか現れない・・・。まだ、正式リリース版だからでは無いからでしょうか?仕方ないので、基本設定は1.6のままで勧めます。 Javaプロジェクトを作成して、ビルドパ
マルチスレッドサンプル マルチスレッドプログラミングのサンプルです。 通常プログラムは上から下へ順々に実行されていきます。 マルチスレッドプログラムでは複数の処理(スレッド)を同時に実行する事ができます。 サンプルを実行すると単純に0〜9までの出力が順に2回行われず、 00112233・・・ のように混ざって出力されます。 これは java.lang.Thread#start() メソッドを呼び出すと、このメソッドが終了する前に次の処理を行うからです。 つまり ts1.start() が実行されている最中に ts2.start() が呼び出されているのです。 これによって2つの処理(スレッド)が同時に実行される事になります。 実装方法はマルチスレッドで動かしたいクラスがRunnableインターフェースを実装し、run() メソッドを実装します。 呼び出す時は java.
ページが見つかりません。 目的のページは、移動または削除によって無効になっている可能性があります。申し訳ありませんが、検索またはリンク先よりお探しください。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く