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 |