タグ

2023年11月13日のブックマーク (2件)

  • 混乱を引き起こしがちなGitの用語まとめ

    分散型バージョン管理システムのGitは2005年の登場以降シェアを伸ばし続け、2022年の調査では約94%のユーザーに利用されるほど一般的なツールとなっています。Gitにはさまざまな機能が搭載されていますが、その中で特に混乱を引き起こしがちな用語について、Gitを15年近く使用してきたというジュリア・エヴァンスさんが解説しています。 Confusing git terminology https://jvns.ca/blog/2023/11/01/confusing-git-terminology/ ◆HEADと「heads」 HEADは現在チェックアウト中のブランチやコミットを指しており、「.git/HEAD」に保存されています。一方「.git/refs/heads」に保存されているのはブランチで、「heads」は「branches」と読み替えればOKとのこと。 ◆detached HE

    混乱を引き起こしがちなGitの用語まとめ
    bopperjp
    bopperjp 2023/11/13
  • 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
    bopperjp
    bopperjp 2023/11/13
    すごっ、ついにロックのベストプラクティスも変わるのか。