Sobes.tech
Middle

Çox iş parçacığı kontekstində 'müsabiqə' və 'paralelizm' arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Müsabiqə (concurrency) — sistemin bir neçə vəzifəni eyni vaxtda işləyə bilmə qabiliyyətidir. Bu vəzifələr tək bir prosessor nüvəsində işlədilə bilər və zamanla bir-biriləri arasında keçid edə bilər (zaman bölmə prinsipi). Zəruri deyil ki, vəzifələr eyni fiziki zamanda yerinə yetirilsin.

Paralelizm (parallelism) — bir neçə vəzifənin fiziki olaraq eyni zamanda, yəni bir vaxtda işləməsidir; bu, bir neçə nüvə və ya prosessor istifadə etməklə həyata keçirilir.

Əsas fərq:

  • Müsabiqə: Bir neçə vəzifənin idarə olunması, onlar eyni vaxtda yerinə yetirilə və ya yerinə yetirilməyə bilər. Proqramın çoxlu icra axınlarını idarə etmək üçün strukturlaşdırılmasına diqqət yetirir.
  • Parallelizm: Bir neçə vəzifənin fiziki olaraq eyni vaxtda yerinə yetirilməsi. İcranı sürətləndirmək üçün mövcud hardware resurslarından istifadə edir.
// Paralel olmayan, lakin paralel yerinə yetirmə zəmanəti olmayan müsabiqə nümunəsi
public class ConcurrentExample {
    public static void main(String[] args) {
        Runnable task1 = () -> System.out.println("Vəzifə 1 başladı, ip: " + Thread.currentThread().getName());
        Runnable task2 = () -> System.out.println("Vəzifə 2 başladı, ip: " + Thread.currentThread().getName());

        new Thread(task1).start(); // Eyni nüvədə yerinə yetirilə bilər
        new Thread(task2).start(); // Eyni nüvədə yerinə yetirilə bilər
    }
}
// Paralel nümunə (çox nüvəli prosessor tələb edir)
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 istifadə edir
               .forEach(number -> System.out.println("İşlənir " + number + " ipdə: " + Thread.currentThread().getName()));
    }
}
Təsir Müsabiqə Paralelizm
Məqsəd Bir neçə vəzifənin idarə olunması İcranın sürətləndirilməsi
Tələblər Bir neçə vəzifə/axın Çox nüvəli prosessor/müxtəlif prosessorlar
İcrası Dövrü icra Eyni vaxtda icra
Tezlik Bir nüvədə əldə edilə bilər Bir neçə nüvə/prosessor tələb edir
Nümunə Bir nüvəli sistemdə çoxlu vəzifə icrası Böyük məlumat dəstlərinin paralel işlənməsi