前回,
- JVMがアプリケーションを中断することなく実行できているか
- JVMがアプリケーションのリソースを奪っていないか
- OSのリソースが十分に割り当てられているか
- アプリケーションが動いているか
今回は,
「OSのリソースが十分に割り当てられているか」
3.では,
また,
スレッドの状態を4つに分ける
スレッドを見るにあたり,
- 処理の受付中
- 処理中
- 休み中
- 待機中
「処理の受付中」
「処理中」
「休み中」
「待機中」
OSのリソースが十分に割り当てられていないと,
また,
同じ理由で待機するスレッドが一定量を超えると,
スレッドが待機中になる3つの理由
スレッドは,
- I/
O待ち - ロック待ち中
- 委譲した処理の完了待ち
I/ O待ち
ローカルやリモートのファイルを読み書きする時間や,
これらは,
ロック待ち
排他的に実行しないといけない処理の入口でスレッドが待たされている状態です。
スレッドは,
委譲した処理の完了待ち
同一のJVM内で別スレッドへ処理を委譲したり,