タグ

ブックマーク / qiita.com/cypher256 (2)

  • Java 21仮想スレッドではsynchronizedの代わりにReentrantLockで同期化する - Qiita

    仮想スレッドと synchronized Java 21 で仮想スレッドが導入されましたが、仮想スレッドで synchronized を使用すると、そのキャリアスレッド (1 つ以上の仮想スレッドが動作しているプラットフォームスレッド) からアンマウントできず、スタックしてしまい、synchronized を抜けるまでキャリアにピンニング (固定化) され独占されしまいます。仮想スレッドとかプラットフォームスレッドとかを気にせず、どちらでも以前の synchronized と同じように排他制御するには、代わりに ReentrantLock クラスを使用します。 private final ReentrantLock lock = new ReentrantLock(); public void m() { lock.lock(); try { // 共有リソースへのアクセスなど } fin

    Java 21仮想スレッドではsynchronizedの代わりにReentrantLockで同期化する - Qiita
    cl-gaku
    cl-gaku 2023/11/14
    なるほど確かに“Java 21 で仮想スレッドが導入されましたが、synchronized はプラットフォームスレッド (OS スレッドに対応) に作用するため、そこで動作している仮想スレッドすべてに影響がおよんでしまいます。”
  • Pleiades Java 11 標準搭載と Eclipse コードネーム終焉

    様々な言語をサポートする統合開発環境 Eclipse の新しいリリースサイクルとなる年月リリースに合わせて、Pleiades All in One をリリースしました。Pleiades All in One は Windows および Mac 向けに、Eclipse 体と Pleiades プラグインおよび各言語向けの便利なプラグインのセットです。Pleiades プラグインは Eclipse や Android Studio のような Java アプリケーションを AOP で動的に日語化するための Java エージェントです。 Pleiades All in One ダウンロード http://mergedoc.osdn.jp/ Pleiades All in One 変更点 今回の変更点の要約 Eclipse コードネーム\(^o^)/オワタ Java 11 LTS 搭載・設定済み

    Pleiades Java 11 標準搭載と Eclipse コードネーム終焉
  • 1