2016-11-21 2 views
0

В C++/C#/Java мы можем запустить поток с помощью функции, которая принимает некоторые аргументы. В WinAPI мы запускаем поток с функцией, которая принимает только void *. Сколько аргументов действительно передается реальным потокам Windows? Может быть, многие аргументы превращаются в void *, который указывает на некоторую структуру?Количество аргументов, переданных потоку в windows

ответ

0

В основе большинства API-интерфейсов многопоточности лежит указатель на функцию и параметр void *, который позволяет предоставить некоторые данные исполняющей функции. Пустота * обычно указывает на какой-то экземпляр объекта, который затем использует функция потока, чтобы использовать известный тип объекта. Это, однако, созрело для ошибки программиста.

API-интерфейсы более высокого уровня, которые вы упоминаете (std :: thread в C++, Thread на Java и т. Д.), Делают это под капотом и предоставляют вам удобные API-интерфейсы типа, гарантирующие, что вы не сможете его испортить.

Смежные вопросы