MULTITHREADING AND CONCURRENCY IN JAVA: THREAD SYNCHRONIZATION & LOCKS EĞİTİMİ

Kilitleri ve senkronizasyonu doğru kullanın

synchronized ve monitör, happens-before, double-checked locking, ReentrantLock, StampedLock, deadlock önleme ve kilitsiz CAS teknikleri.

Java'da senkronizasyon ve kilitleri öğrenin: synchronized monitörü, happens-before, ReentrantLock, ReadWriteLock, StampedLock, deadlock önleme, CAS ve çekişme teşhisi.

2 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Senkronizasyon ve kilit mekanizmalarının derinlemesine kullanımı

Eğitim, Java'da paylaşılan duruma güvenli erişimin tüm araçlarını derinlemesine işler. synchronized ve monitör mantığı, kilit granülaritesi, happens-before, double-checked locking ve güvenli yayımlama anlatılır. ReentrantLock ile tryLock ve Condition, ReentrantReadWriteLock ve StampedLock iyimser okuma uygulanır. Deadlock, livelock ve starvation üretilip kilit sıralaması ve zaman aşımıyla çözülür; CAS tabanlı kilitsiz yapılar tanıtılır. JFR ve jstack ile çekişme teşhis edilir.

Süre ve Format

2 Gün. Her gün dört modül; Monitörler ve Görünürlük; İleri Kilitler ve Teşhis ekseninde ilerleyen uygulamalı program.

Seviye

İleri Seviye — Java'da synchronized, volatile, happens-before, ReentrantLock, ReadWriteLock, StampedLock, deadlock önleme ve kilitsiz teknikler.

Öğrenme Metodu

Bankacılık havale senaryosu eğitim boyunca birden çok kilit stratejisiyle yazılır; deadlock bilinçli üretilir, çözülür ve performansı ölçülür.

Neden Bu Eğitim?

🔒Kilit Seçimi

synchronized, ReentrantLock ve StampedLock arasında ölçüte dayalı seçim yaparsınız.

☠️Deadlock Önleme

Kilitlenmeleri üretip kilit sıralaması ve zaman aşımıyla çözersiniz.

⚡Düşük Çekişme

Kritik bölge boyutunu ve kilit türünü ölçümle optimize edersiniz.

Anahtar Konular

java synchronizedjava reentrantlockjava stampedlockjava deadlockjava happens-beforejava double checked lockingjava thread senkronizasyonujava readwritelockjava CASjava kilit mekanizmaları
“Kilit, ne kadar küçükse o kadar güvenlidir; ne kadar az tutulursa o kadar hızlıdır.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Concurrency Temeli

Thread, synchronized ve Executor bilgisi gerekir.

2
JDK 17+

JDK 17+ ve IDE kurulu olmalıdır.

3
Terminal Araçları

jstack ve jcmd komutlarını kullanabilmek faydalıdır.

4
Çok Çekirdekli Makine

Çekişme deneyleri için dört çekirdek önerilir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı monitör ve görünürlük kurallarını uygular, deadlock'u önler, ReentrantLock kullanır.
Modül 1
synchronized Derinlemesine
  • Nesne monitörü, sınıf kilidi ve static synchronized
  • Kritik bölge boyutu ve kilit granülaritesi
  • Reentrancy ve iç içe kilitler
  • Kilit nesnesi seçimi: private final Object
  • String, Integer gibi paylaşılan nesnelerin kilit olarak kullanılması
  • Biased/thin/fat lock ve JVM optimizasyonları
Modül 2
Görünürlük ve happens-before
  • synchronized ve volatile'ın happens-before garantileri
  • Double-checked locking ve doğru yazımı
  • Güvenli yayımlama kalıpları
  • Holder idiom ile tembel singleton
  • Sıra bozma (reordering) örneği
  • VarHandle ile acquire/release erişim
Modül 3
Deadlock ve Korunma
  • Klasik iki kilit deadlock örneği
  • Kilit sıralaması ile önleme
  • tryLock ve zaman aşımı
  • Open call ile kilit tutarken yabancı kod çağırmama
  • ThreadMXBean.findDeadlockedThreads
  • Livelock ve starvation örnekleri
Modül 4
ReentrantLock
  • lock/unlock ve try-finally zorunluluğu
  • tryLock(timeout) ve lockInterruptibly
  • Adil (fair) ve adil olmayan kilit
  • Condition nesneleri ile çoklu bekleme kümesi
  • getHoldCount ve isLocked ile tanılama
  • synchronized ile ReentrantLock seçim kriterleri
Günün hedefiKatılımcı okuma ağırlıklı kilitleri ve CAS tekniklerini uygular, çekişmeyi teşhis eder.
Modül 1
ReadWriteLock ve StampedLock
  • ReentrantReadWriteLock okuma/yazma ayrımı
  • Kilit düşürme (downgrading) ve yükseltme sorunu
  • StampedLock iyimser okuma (tryOptimisticRead)
  • validate ile iyimser okumayı doğrulama
  • Okuma ağırlıklı önbellek örneği
  • Yazar açlığı ve performans ölçümü
Modül 2
Kilitsiz Teknikler
  • CAS döngüsü ile kilitsiz yığın
  • AtomicReference ile durum güncelleme
  • ABA problemi ve damgalı referans
  • Kilitsiz ve beklemesiz (wait-free) ayrımı
  • ConcurrentLinkedQueue iç yapısına bakış
  • Kilitsiz kodun bakım maliyeti
Modül 3
Kilitli Kodu Test ve Teşhis
  • Stres testi ile yarış yakalama
  • jstack ile BLOCKED thread analizi
  • JFR Java Monitor Blocked olayları
  • Deadlock'u bilinçli üretip çözme
  • Kilit çekişmesini azaltma yöntemleri
  • Kod incelemesi kontrol listesi
Modül 4
Lab: Thread-Safe Hesap Yönetimi
  • Banka hesapları arası havale senaryosu
  • Naif kilit ile deadlock üretimi
  • Sıralı kilitleme ile çözüm
  • ReentrantLock tryLock ile çözüm
  • Okuma ağırlıklı bakiye sorgusu için StampedLock
  • Performans karşılaştırması ve rapor

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Monitör Kullanımı

synchronized kapsamını ve kilit nesnesini doğru seçebilirsiniz.

🧩
Görünürlük

happens-before ile güvenli yayımlama kalıplarını uygulayabilirsiniz.

⚙
Deadlock Önleme

Kilit sıralaması ve tryLock ile kilitlenmeyi önleyebilirsiniz.

️
ReentrantLock

Condition ve zaman aşımlı kilit kullanabilirsiniz.

🔍
ReadWriteLock

Okuma ağırlıklı yapılarda uygun kilidi seçebilirsiniz.

🛠
StampedLock

İyimser okumayı validate ile güvenle kullanabilirsiniz.

️
CAS Teknikleri

Kilitsiz basit yapılar yazıp ABA riskini bilebilirsiniz.

🧪
Teşhis

jstack ve JFR ile kilit sorunlarını bulabilirsiniz.

Kimler İçin Uygundur?

  • Eşzamanlılık temelini bilen
  • kritik bölgeleri doğru
  • verimli kilitlemek isteyen deneyimli Java geliştiricileri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Eşzamanlılık temelini bilen, kritik bölgeleri doğru ve verimli kilitlemek isteyen deneyimli Java geliştiricileri için uygundur.
ReentrantLock synchronized'dan daha mı hızlı?
Modern JVM'lerde fark küçüktür; ReentrantLock esneklik (tryLock, Condition, adil kilit) sağlar. Eğitimde ölçümle gösterilir.
Deadlock'u canlı sistemde nasıl bulurum?
jstack, jcmd Thread.print ve ThreadMXBean ile; eğitimde adım adım uygulanır.
StampedLock reentrant mıdır?
Hayır, reentrant değildir; bu sınırın sonuçları örnekle işlenir.
Eğitim sonunda sertifika verilir mi?
Katılım ve değerlendirme sonrasında Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Multithreading and Concurrency in Java: Thread Synchronizati Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
Seviyeİleri Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Java ve JVMJava SE Programmer II: Lambda Operations & Streams Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE Programmer II: Lambda Operations & Streams Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Java SE Programmer II lambda ve Stream eğitimi: filter, map, flatMap, Collectors, groupingBy, reduce ve paralel akış. 2 gün uygulamalı, DVA katılım sertifikası.

Detayları Gör →
Java ve JVMJava SE Programmer II: Localization in Java Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE Programmer II: Localization in Java Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Java SE Programmer II yerelleştirme eğitimi: Locale, ResourceBundle, MessageFormat, NumberFormat, Collator ve çok dilli uygulama. 2 gün uygulamalı, DVA sertifik

Detayları Gör →
Java ve JVMJava SE Programmer II: Object-oriented Programming in Java Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE Programmer II: Object-oriented Programming in Java Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Java SE Programmer II nesne yönelimli programlama eğitimi: SOLID, bileşim, polimorfizm, Factory, Builder, Strategy, Observer ve refactoring. 2 gün, DVA sertifik

Detayları Gör →
Java ve JVMJava SE Programmer II: Streams & Pipelines Eğitimi
Yazılım Geliştirme Eğitimleri

Java SE Programmer II: Streams & Pipelines Eğitimi

2 günİleriOnline / Yüz Yüze / Hibrit

Java SE Programmer II Streams ve Pipelines eğitimi: özel Collector, teeing, Spliterator, paralel akış ince ayarı ve JMH ile performans ölçümü. 2 gün, DVA sertif

Detayları Gör →
Java ve JVMJava ve Selenium ile Test Otomasyonu Eğitimi
Yazılım Geliştirme Eğitimleri

Java ve Selenium ile Test Otomasyonu Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Java ve Selenium ile test otomasyonu eğitimi: WebDriver, locator, wait, Page Object Model, TestNG, Allure ve Selenium Grid. 2 gün uygulamalı, DVA katılım sertif

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn