Sobes.tech
Middle

U čemu je razlika između 'konkurencije' i 'paralelizma' u kontekstu višestrukog niti?

sobes.tech АИ

Одговор од АИ

Конкуренција (concurrency) je mogućnost sistema da obrađuje više zadataka istovremeno. Ti zadaci mogu se izvršavati na jednom jezgru procesora, prebacujući se između njih u vremenu (princip deljenja vremena). Nije obavezno da zadaci budu izvršeni u istom fizičkom trenutku.

Paralelizam (parallelism) je stvarno istovremeno izvršavanje više zadataka u istom fizičkom trenutku, koristeći više jezgara procesora ili više procesora.

Glavna razlika:

  • Konkurencija: Upravljanje više zadataka, koji mogu ili ne moraju biti izvršeni istovremeno. Fokus na strukturiranju programa za obradu više tokova.
  • Paralelizam: Fizičko istovremeno izvršavanje više zadataka. Fokus na korišćenju dostupnih hardverskih resursa za ubrzanje izvršenja.
// Primer konkurencije (bez garancije paralelnog izvršavanja)
public class ConcurrentExample {
    public static void main(String[] args) {
        Runnable task1 = () -> System.out.println("Zadatak 1 započeo na niti: " + Thread.currentThread().getName());
        Runnable task2 = () -> System.out.println("Zadatak 2 započeo na niti: " + Thread.currentThread().getName());

        new Thread(task1).start(); // Mogu se izvršavati na istom jezgru
        new Thread(task2).start(); // Mogu se izvršavati na istom jezgru
    }
}
// Primer paralelizma (zahteva višejedrni procesor)
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() // Koristi ForkJoinPool za paralelno izvršavanje
               .forEach(number -> System.out.println("Obrada " + number + " na niti: " + Thread.currentThread().getName()));
    }
}
Aspekt Konkurencija Paralelizam
Cilj Upravljanje više zadataka Ubrzanje izvršavanja
Zahtevi Više zadataka/vlaka Višejedrni procesor/više procesora
Izvršenje Naizmenično izvršavanje Istovremeno izvršavanje
Čestoća Može biti postignuta na jednom jezgru Zahteva više jezgara/procesora
Primer Višezadaćnost na jednoj jezgri sistema Obrada velike količine podataka paralelno