Функция beginthread создает новый поток выполнения в текущем процессе. Он является частью библиотеки времени выполнения Microsoft Windows и объявлен в заголовочном файле process.h .
Опытный образец
unsigned long _beginthread ( void ( * Func ) ( void * ), unsigned Stack_size , void * Arg );
Func
Выполнение потока начинается с начала функции func
. Для правильного завершения потока func
необходимо вызвать _endthread
или завершить с помощью «return 0», освобождая память, выделенную библиотекой времени выполнения для поддержки потока.
Stack_size
Операционная система выделяет стек для потока, содержащий количество байтов, указанное в stack_size
. Если значение stack_size
равно нулю, операционная система создает стек того же размера, что и у основного потока. [1]
Arg
Операционная система передает Arg функции Func, когда начинается выполнение. Arg
может быть любое 32-битное значение, приведенное к void *.
Возвращаемое значение
Возвращает дескриптор операционной системы вновь созданного потока. В случае неудачи функция возвращает -1 и устанавливает значение errno .
Переключатели компилятора
Чтобы скомпилировать программу с использованием нескольких потоков с помощью компилятора Microsoft C / C ++, необходимо указать переключатель / MT (или / MTd для программ отладки).