Процессы и Потоки
В параллельном программировании есть две основных единицы выполнения: процессы и потоки. В языке программирования Java параллельное программирование главным образом касается потоков. Однако, процессы также важны.
У компьютерной системы обычно есть много активных процессов и потоков. Это - истина даже в системах, у которых только есть единственное ядро выполнения, и таким образом только имейте один поток, фактически выполняющийся в любой данный момент. Время обработки для одноядерного совместно используется среди процессов и потоков через функцию ОС, названную квантованием времени.
Это все больше распространено для компьютерных систем, чтобы иметь многократные процессоры или процессоры с ядрами массовой казни. Это значительно улучшает емкость системы для параллельного выполнения процессов и потоков — но параллелизм возможен даже на простых системах без многократных процессоров или ядер выполнения.
Процессы
У процесса есть автономная среда выполнения. У процесса обычно есть полный, частный набор основных ресурсов времени выполнения; в частности у каждого процесса есть свое собственное пространство памяти.
Процессы часто замечаются как синонимичные с программами или приложениями. Однако, что видит пользователь, поскольку единственное приложение может фактически быть рядом процессов сотрудничества. Чтобы облегчить передачу между процессами, большинство поддержки операционных систем Предает Передачу Процесса земле (IPC) ресурсы, такие как каналы и сокеты. IPC используется не только для передачи между процессами на той же самой системе, но обрабатывает на различных системах.
Большинство реализаций виртуальной машины Java, выполненной как единственный процесс. Приложение Java может создать дополнительные процессы, используя a ProcessBuilder объект. Приложения мультипроцесса выходят за рамки этого урока.
Потоки
Потоки иногда вызывают легкими процессами. И процессы и потоки обеспечивают среду выполнения, но создание нового потока требует меньшего количества ресурсов чем создание нового процесса.
Потоки существуют в пределах процесса — у каждого процесса есть по крайней мере один. Потоки совместно используют ресурсы процесса, включая память и открытые файлы. Это делает для эффективной, но потенциально проблематичной, передачи.
Многопоточное выполнение является существенной особенностью платформы Java. У каждого приложения есть по крайней мере один поток — или несколько, если Вы считаете "системные" потоки, которые делают вещи как обработка сигнала и управление памятью. Но с точки зрения прикладного программиста, Вы запускаете только с одного потока, названного основным потоком. У этого потока есть возможность создать дополнительные потоки, поскольку мы будем демонстрировать в следующем разделе.
Do'stlaringiz bilan baham: |