Я слышал, что языки программирования, такие как java, имеют концепцию многопоточности. Когда я изучал процесс fork на языке c, я подумал, является ли это примером многопоточности.
Почему вы удалили свой последний вопрос (и мой ответ с ним)?





Нет, это не так. C даже не знает fork(), но я предполагаю, что вы говорите о функции POSIX fork(). Это создает новый процесс, который работает полностью изолированно (за некоторыми исключениями, например, он может наследовать дескрипторы открытых файлов) от родительского процесса.
Для многопоточности в C взгляните на функции потока в C11. К сожалению, их поддержка не очень распространена, но есть также интерфейс потоковой передачи POSIX pthreads.
fork можно использовать для эмуляции потоков (и это, безусловно, способ ввести параллелизм в вычисления), но гораздо меньше ресурсов используется совместно с родительским процессом. Во многих системах можно совместно использовать часть адресного пространства, создав сопоставление MAP_SHARED до разветвления, но в остальном оба процесса являются отдельными. Даже файловые дескрипторы только наследуются - если вы их закроете или откроете новые, это не повлияет на другой процесс.
Возможный дубликат В чем разница между вилкой и резьбой?