原文はこちら。
The original article was written by David Delabassee (Director, Java Developer Relations, Oracle).
https://inside.java/2024/06/22/quality-heads-up/
OpenJDK Quality Groupは、リリースの全体的な品質向上の手段としてOpenJDKビルドを使ってのFOSSプロジェクトのテストを推進しています。
Quality Outreach
https://wiki.openjdk.java.net/display/quality/Quality+Outreach
このHeads upは、関係するプロジェクトに送られる定期的なコミュニケーションの一部です。
JDK 23 Feature Freeze / New Loom EA builds
https://mail.openjdk.org/pipermail/quality-discuss/2024-June/001135.html
このプログラムの詳細と参加方法については、上記wikiをご覧ください。
New Loom EA Builds Improve Monitors (Synchronized Methods) in Virtual Threads
Project Loomでは、新たな早期アクセスビルド (23-loom+4-102 – 2024/5/31) をリリースしました。
Project Loom Early-Access Builds
https://jdk.java.net/loom/
オブジェクトモニターの実装が改善されており、仮想スレッドが以下の状況でキャリアスレッドをピン止めしないようになっています。
- オブジェクトに関連付けられたモニターを別のスレッドが保持しているために、同期メソッド/ステートメントの実行時にブロックする場合
- socket I/O の実行などで、同期メソッド内でとどまる場合
- 同期メソッド内で
Object.wait
を呼び出す場合
![3 potential uses-cases](https://logico-jp.io/wp-content/uploads/2024/06/image-9.png)
Object.wait
/timed-wait
の変更は、前回のLoom EAビルドからの主要な変更点です。
Loomチームでは、変更点のテストを手伝ってくれる方を募集しています。つまり、これらのビルドを仮想スレッドを使用することが分かっているコードや「非常に同期化された」ライブラリで試すなどしていただける方を探しています。主な目的は、信頼性とパフォーマンスの両方を評価することです。現時点では、機能性と信頼性に重点を置いています。一部のケースでは、j.u.concurrent
ロックや条件オブジェクトでのブロッキングと同等のパフォーマンスがまだ得られていないことにご注意ください。
これまで通り、JFRイベントを使い、例えばクラスイニシャライザにおけるピン留め、パーキング、ブロッキングの状況を識別できます。スレッドがピン留めされた場合にスタックトレースを出力していたシステムプロパティjdk.tracePinnedThreads
は、もはや何も出力しません。
ご意見は、Loom メーリングリスト(サブスクライブが必要です)までメールでお送りください。
loom-dev — Technical discussion related to Project Loom
https://mail.openjdk.org/mailman/listinfo/loom-dev