Yapılandırılmış Eşzamanlılık Modeli
İlişkili görevleri tek bir birim olarak ele alın
Yapılandırılmış Eşzamanlılık Modeli, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 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 4 dersten oluşur.
Yapılandırılmış Eşzamanlılık Nedir
Yapılandırılmış eşzamanlılık (JEP 453, önizleme), ilişkili eşzamanlı görevlerden oluşan bir grubu tek bir iş birimi olarak ele alır.
Üst görev alt görevlere ayrılırsa, bu alt görevlerin tümü üst görev ilerlemeden önce tamamlanmalıdır; bu, normal koddaki blok kapsamına çok benzer.
Çözdüğü Sorun
Ham yürütücüler kullanıldığında başlatılan bir görev, onu oluşturan görevden uzun yaşayabilir, sızıntıya neden olabilir veya unutulabilir. Bir daldaki hatalar fark edilmeden kalırken diğer dallar çalışmaya devam edebilir.
Bu durum iş parçacığı sızıntılarına, sahipsiz işlere ve kafa karıştırıcı hata işlemeye yol açar.
Ağaç Olarak Görevler
Yapılandırılmış eşzamanlılık, üst-alt ilişkisini zorunlu kılar. Alt görevler, onları başlatan görevi kök alan bir ağaç oluşturur.
- Bir alt görev kendi üst kapsamından uzun yaşayamaz
- Üst görev tüm alt görevlerin tamamlanmasını bekler
- İptal işlemi ağaç boyunca aşağı doğru ilerler
Sıralı Kodu Yansıtma
Temel fikir, eşzamanlı kodun sıralı kod gibi okunmasıdır. Bir kapsam açılır, işler dallanır ve kapsam ancak her şey birleştikten sonra kapanır.
Bu, ömürleri belirgin ve hataları anlamlandırmayı kolay hâle getirir.
Eski Yapılandırılmamış Yöntem
Burada sade bir yürütücü kullanan, tanıdık ancak yapılandırılmamış bir yaklaşım yer alıyor. Çalışır, ancak iki sonuç nesnesinin eşgüdümlü bir ömrü paylaşmasını hiçbir şey garanti etmez.
import java.util.concurrent.*;
public class Main {
public static void main(String[] args) throws Exception {
try (ExecutorService exec = Executors.newVirtualThreadPerTaskExecutor()) {
Future<String> user = exec.submit(() -> "Ada");
Future<Integer> order = exec.submit(() -> 7);
System.out.println(user.get() + " has " + order.get() + " orders");
}
}
}Eşgüdüm Neden Önemlidir
Önceki örnekte kullanıcıyı getirme işlemi başarısız olursa sipariş görevi gereksiz yere çalışmaya devam eder. Bu görevi elle iptal etmeniz ve her get() çağrısının istisnalarını işlemeniz gerekir.
Yapılandırılmış eşzamanlılık bu eşgüdümü otomatikleştirir.
Önizleme Durumu
Yapılandırılmış eşzamanlılık, java.util.concurrent paketinde önizleme arayüzü olarak sunulur. Kullanmak için --enable-preview seçeneğiyle derleyip çalıştırmanız gerekir.
Temel sınıf, sonraki derste ele alınacak olan StructuredTaskScope'tur.
Yaşam Süresi Güvenceleri
Yapılandırılmış bir kapsam içinde:
- Kapsamdan çıkılmadan önce tüm alt görevler tamamlanır, başarısız olur veya iptal edilir
- Hiçbir alt görev arka plana kaçmaz
- İş parçacığı dökümlerindeki çağrı yığını gerçek görev hiyerarşisini yansıtır
Gözlemlenebilirlik Avantajı
Alt görev ağacı açıkça tanımlandığından JDK araçları bunu gösterebilir. Bir iş parçacığı dökümü, alt görevleri kendi üst kapsamlarının altında gruplandırır; bu da tanılamayı dağınık havuz iş parçacıklarına kıyasla çok daha anlaşılır hâle getirir.
Sanal İş Parçacıklarıyla İyi Uyum Sağlar
Yapılandırılmış bir kapsamdaki her alt görev, varsayılan olarak kendi sanal iş parçacığında çalışır. Sanal iş parçacıklarının düşük maliyetli olması, çok sayıda alt göreve dallanmayı pratik hâle getirir.
Bu iki özellik birlikte çalışacak şekilde tasarlanmıştır.
Zihinsel Model
Yapılandırılmış bir kapsamı, eşzamanlılık için kaynak yönetimli bir try bloğu gibi düşünün: kapsamı açar, işleri çatallandırır, join işlemini yapar ve ardından kapatırsınız. Kapanış küme ayracı, geride çalışan hiçbir şey kalmadığının güvencesidir.
Hızlı Kontrol
Temel ilkeyi ne kadar kavradığınızı sınayın.
Özet
Yapılandırılmış eşzamanlılık modeliyle tanıştınız:
- İlişkili görevler, bir kapsamın yaşam süresine bağlı bir ağaç oluşturur
- Eşzamanlı kod, sıralı kod gibi okunur
- Bu,
--enable-previewgerektiren bir önizleme API'sidir - Sanal iş parçacıklarıyla doğal bir uyum içindedir
Sırada: StructuredTaskScope API'sinin kendisi.
Sıkça Sorulan Sorular
“Yapılandırılmış Eşzamanlılık Modeli” dersi ücretsiz mi?
Evet — “Yapılandırılmış Eşzamanlılık Modeli” 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 4 dersten oluşur.
“Yapılandırılmış Eşzamanlılık Modeli” dersinde ne öğreneceğim?
İlişkili görevleri tek bir birim olarak ele alı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, 4 dersinin 1. dersidir.
“Yapılandırılmış Eşzamanlılık Modeli” 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
- Yapılandırılmış Eşzamanlılık Modeli
- StructuredTaskScope
- Başarıda ve Başarısızlıkta Kapatma
- Hata İşleme ve İptal