0Pricing
Java Academy · Ders

Eşzamanlama ve Kilitler

Paylaşılan kaynaklara erişimi düzenlemek için synchronized bloklarını ve açık kilitleri kullanın.

Eşzamanlama ve Kilitler, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 3 dersten oluşur.

Giriş

Senkronizasyon, birden çok iş parçacığı paylaşılan verilere eriştiğinde yarış durumlarını önler.

synchronized

synchronized anahtar sözcüğü, aynı anda yalnızca bir iş parçacığının bir bloğa veya yönteme girmesini sağlar.

Kod: synchronized yöntemi

Bu synchronized yöntemi, bir sayacı artırırken yarış durumlarını önler.

public class Main {
  private int count = 0;
  public synchronized void increment() {
    count++;
  }
  public static void main(String[] args) throws Exception {
    Main obj = new Main();
    Thread t1 = new Thread(() -> { for(int i=0;i<1000;i++) obj.increment(); });
    Thread t2 = new Thread(() -> { for(int i=0;i<1000;i++) obj.increment(); });
    t1.start(); t2.start();
    t1.join(); t2.join();
    System.out.println("Count = " + obj.count);
  }
}

synchronized bloğu

Çekişmeyi azaltmak için yöntemlerin tamamı yerine yalnızca kritik bölümleri synchronized yapabilirsiniz.

Kod: synchronized bloğu

Synchronized blok, yalnızca kritik bölüm olan artırma satırını korur.

public class Main {
  private int count = 0;
  public void add() {
    synchronized(this) {
      count++;
    }
  }
  public static void main(String[] args) throws Exception {
    Main obj = new Main();
    Thread t1 = new Thread(() -> { for(int i=0;i<1000;i++) obj.add(); });
    Thread t2 = new Thread(() -> { for(int i=0;i<1000;i++) obj.add(); });
    t1.start(); t2.start();
    t1.join(); t2.join();
    System.out.println("Count = " + obj.count);
  }
}

Kod: ReentrantLock

ReentrantLock, tryLock() ve adalet seçenekleri gibi esnekliklerle açık kilitleme sağlar.

import java.util.concurrent.locks.*;public class Main {
  private int count = 0;
  private Lock lock = new ReentrantLock();
  public void increment() {
    lock.lock();
    try { count++; }
    finally { lock.unlock(); }
  }
  public static void main(String[] args) throws Exception {
    Main obj = new Main();
    Thread t1 = new Thread(() -> { for(int i=0;i<1000;i++) obj.increment(); });
    Thread t2 = new Thread(() -> { for(int i=0;i<1000;i++) obj.increment(); });
    t1.start(); t2.start();
    t1.join(); t2.join();
    System.out.println("Count = " + obj.count);
  }
}

Senkronizasyon denetimi

Hızlı denetim: synchronized anahtar sözcüğünün amacı nedir?

Özet

Özet: Karşılıklı dışlama için synchronized kullanın, ayrıntılı denetim için bloklardan ve gelişmiş senaryolar için açık kilitlerden yararlanın.

Sıkça Sorulan Sorular

“Eşzamanlama ve Kilitler” dersi ücretsiz mi?

Evet — “Eşzamanlama ve Kilitler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 3 dersten oluşur.

“Eşzamanlama ve Kilitler” dersinde ne öğreneceğim?

Paylaşılan kaynaklara erişimi düzenlemek için synchronized bloklarını ve açık kilitleri kullanın. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.

“Eşzamanlama ve Kilitler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Eşzamanlama ve Kilitler
  2. Atomik ve Eşzamanlı Koleksiyonlar
  3. Yaygın Eşzamanlılık Hataları
← Java Academy Sayfasına Dön