Re[5]: Что почитать про многопоточность?
От: Pzz Россия https://github.com/alexpevzner
Дата: 18.09.19 11:09
Оценка: +1
Здравствуйте, MScanner, Вы писали:

MS>причем тут Go... прога написанная на любом языке, будет обращяться к ОС за созданием потока, как будет создан поток и сколько он ресурсов сожрет это от языка мало зависит (исключим недоделки оптимизации компиляторов).


Стандартный сишный рантайм на любой популярной операционной системе отображает потоки C/C++ на потоки операционной системы 1:1, и это, на самом деле, очень сложно сделать по-другому. А вот стандартный рантайм Go использует один поток операционной системы для обслуживания большого количества потоков Go. И когда поток Go засыпает в ожидании завершения какой-либо блокирующейся операции, то обслуживавший его поток операционной системы не засыпает вместе с ним, а переключается на обслуживание другого потока Go (если подходящий ничейный поток найдется).

MS> на чистом С можно создать 100500 потоков , винда выделил только один. Но это конечно зависит от того что делает поток. Если одного потока не хватит для обслуживания 100500 запросов, винда создаст дополнительный.


На чистом C вообще нельзя создать никаких потоков, поток можно создать, позвав соответствующую функцию. И все пригодные для этого функции в венде в конечном итоге позовут CreateThread, которая создаст поток операционной системы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.