Middle
Çok iş parçacıklı bağlamda 'rekabet' ile 'paralelizm' arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Konkürency (eşzamanlılık) — bir sistemin birkaç görevi aynı anda işleme yeteneğidir. Bu görevler, bir işlemci çekirdeğinde çalıştırılabilir ve zaman içinde birbirleri arasında geçiş yapabilirler (zaman bölme ilkesi). Mutlaka görevlerin aynı fiziksel anda gerçekleştiği anlamına gelmez.
Paralelizm (paralellik) — birkaç görevin gerçek anlamda aynı anda, yani fiziksel olarak aynı zamanda çalışmasıdır; bu, birkaç işlemci çekirdeği veya birkaç işlemci kullanılarak yapılır.
Ana fark:
- Konkürency: Birden fazla görevi yönetmek, bunlar aynı anda çalışabilir veya çalışmayabilir. Çoklu yürütme akışlarını yönetmek için programın yapılandırılmasına odaklanır.
- Paralelizm: Birden fazla görevin fiziksel olarak aynı anda çalışması. Çalışmayı hızlandırmak için mevcut donanım kaynaklarının kullanılması.
// Paralel olmayan, ancak paralel yürütme garantisi olmayan konkürency örneği
public class ConcurrentExample {
public static void main(String[] args) {
Runnable task1 = () -> System.out.println("İşlem 1 başlatıldı, thread: " + Thread.currentThread().getName());
Runnable task2 = () -> System.out.println("İşlem 2 başlatıldı, thread: " + Thread.currentThread().getName());
new Thread(task1).start(); // Aynı çekirdekte çalışabilir
new Thread(task2).start(); // Aynı çekirdekte çalışabilir
}
}
// Paralel örneği (çok çekirdekli işlemci gerektirir)
import java.util.List;
import java.util.Arrays;
public class ParallelExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
numbers.parallelStream() // ForkJoinPool kullanır
.forEach(number -> System.out.println("İşleniyor " + number + " thread: " + Thread.currentThread().getName()));
}
}
| Açıklama | Konkürency | Paralelizm |
|---|---|---|
| Amaç | Birden fazla görevi yönetmek | Çalışmayı hızlandırmak |
| Gereksinimler | Birden fazla görev/iş parçacığı | Çok çekirdekli işlemci/birden fazla işlemci |
| Yürütme | Sıralı yürütme | Aynı anda yürütme |
| Sıklık | Tek çekirdek üzerinde başarılabilir | Çok çekirdek/prosesör gerektirir |
| Örnek | Tek çekirdekli sistemde çoklu görev | Büyük veri kümelerinin paralel işlenmesi |