Это независимые программы, выполняющиеся в операционной системе, каждая со своим адресным пространством. Потоки – это единицы выполнения внутри процесса, которые делят общее адресное пространство. Потоки легче создавать и переключать, чем процессы, поэтому они используются для параллельной обработки.
🚩Процессы
Это экземпляр выполняемой программы, который включает в себя программу кода, данные и состояния. Каждый процесс имеет свое собственное адресное пространство и системные ресурсы (например, файлы, память и устройства ввода-вывода).
🟠Изоляция
Процессы изолированы друг от друга. Один процесс не может напрямую изменить данные другого процесса.
🟠Ресурсы
Каждый процесс имеет свое собственное адресное пространство, дескрипторы файлов и т. д.
🟠Создание
Создание нового процесса может быть дорогостоящим по времени и ресурсам, так как включает выделение памяти и инициализацию ресурсов.
#include <iostream>
#include <unistd.h>
int main() {
pid_t pid = fork(); // Создание нового процесса
if (pid == 0) {
// Дочерний процесс
std::cout << "Это дочерний процесс" << std::endl;
} else {
// Родительский процесс
std::cout << "Это родительский процесс, PID дочернего процесса: " << pid << std::endl;
}
return 0;
}
🚩Потоки
Это наименьшая единица выполнения в рамках процесса. Потоки одного процесса разделяют одно адресное пространство и ресурсы, такие как память и дескрипторы файлов.
🟠Разделение ресурсов
Потоки разделяют память и ресурсы процесса, что делает межпоточное взаимодействие более эффективным.
🟠Создание
Создание потоков обычно быстрее и менее ресурсозатратно по сравнению с процессами.
🟠Параллелизм
Потоки позволяют выполнять несколько частей программы параллельно, что улучшает производительность на многоядерных системах.
#include <iostream>
#include <thread>
void printMessage(const std::string& message) {
std::cout << message << std::endl;
}
int main() {
std::thread t1(printMessage, "Привет из потока 1");
std::thread t2(printMessage, "Привет из потока 2");
t1.join(); // Ожидание завершения потока
t2.join();
return 0;
}
Ставь 👍 и забирай 📚 Базу знаний