Sobes.tech
Middle

Көптөгөн агымдар контекстинде 'бәсекелестик' жана 'параллелизм' арасындагы айырма эмнеде?

sobes.tech AI

AIден жооп

Конкуренция (concurrency) — бул системанын бир нече тапшырмаларды бир убакта иштетүү мүмкүнчүлүгү. Бул тапшырмалар бир ядро ​​процессорунда ишке ашырылышы мүмкүн, убакыт боюнча алмаштырып (уакытты бөлүү принциби). Мажбур эмес — тапшырмаларды бир физикалык учурда аткаруу.

Параллелизм (parallelism) — бул бир нече тапшырманын чын эле бир убакта аткарылышы, көп ядролу процессорду же көп процессорду колдонуу менен, бир физикалык учурда.

Негизги айырмачылык:

  • Конкуренция: бир нече тапшырманы башкаруу, алар бир убакта аткарылышы мүмкүн же мүмкүн эмес. Программаны бир нече агымда иштетүүгө багытталган.
  • Параллелизм: бир нече тапшырманын физикалык бир убакта аткарылышы. Жарактуу аппараттык ресурстарды колдонуу аркылуу иштөө ылдамдыгын жогорулатуу.
// Конкуренциянын мисалы (параллелдүү аткаруу кепилдиги жок)
public class ConcurrentExample {
    public static void main(String[] args) {
        Runnable task1 = () -> System.out.println("Тапшырма 1 башталды агымда: " + Thread.currentThread().getName());
        Runnable task2 = () -> System.out.println("Тапшырма 2 башталды агымда: " + Thread.currentThread().getName());

        new Thread(task1).start(); // Бир ядро ​​жогорку аткарылышы мүмкүн
        new Thread(task2).start(); // Бир ядро ​​жогорку аткарылышы мүмкүн
    }
}
// Параллелизмдин мисалы (көп ядролу процессор талап кылынат)
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 колдонуп параллелдүү аткаруу
               .forEach(number -> System.out.println("Иштөө " + number + " агымда: " + Thread.currentThread().getName()));
    }
}
Аспект Конкуренция Параллелизм
Максат бир нече тапшырманы башкаруу аткарууну тездетүү
Талаптар бир нече тапшырма/агымдар Көп ядролу процессор/бир нече процессорлор
Ишке ашыруу Алмашып иштетүү Бир убакта ишке ашыруу
Жыштык бир ядро ​​жогорку ишке ашыруу мүмкүнчүлүгү Көп ядролор/процессорлор талап кылынат
Мисал бир ядролу системада көп тапшырма иштетүү чоң маалымат массивин параллелдүү иштетүү