Sobes.tech
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