Re[6]: Что почитать про многопоточность?
От: MScanner  
Дата: 18.09.19 11:28
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, MScanner, Вы писали:


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


Pzz>А вот стандартный рантайм Go использует один поток операционной системы для обслуживания большого количества потоков Go.


рантайм Go вызывает соответсвующие функции ОС . чтобы юзать один поток для выполнения большого кол-ва запросов.

на С++ как бы есть библиотеки (boost, pplx) которые делают тоже самое (тока немного буковки другие) , в конечном счете это ведет к вызову функций ОС

C — также можно вызвать напрямую функцию ОС (winAPI например) — вот цикл из 1000 итераций в каждой итерации хотим чтобы функция F выполнялись параллельно. ОС в зависимости от функции F может на 1000 паралельных вызовов выделить 1, 50 , 100, 1000 потоков .

Рантайм любого языка дергает нужные функции ОС,


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


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


если с этой точки зрения смотреть — ни один язык не может создавать никаких потоков. Так как это задача ОС.

CreateThread — позовет или нет зависит от программера. в ОС (я про винду) есть не только CreateThread для параллельного исполнения кода
Отредактировано 18.09.2019 11:30 MScanner . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.