Нет никакой разницы в языке между тем, что вы называете «функцией потока» (хотя Джастин отредактировал так, чтобы называть это «функцией входа потока»), и тем, что вы называете «нормальной функцией».
В pthreads так называемая «процедура запуска» потока - это функция, которая принимает один параметр void*
и возвращает void*
, но ничто не мешает вам вызывать ту же функцию «нормально».
Когда процедура запуска потока возвращается, поток завершает выполнение, но это только потому, что реализация потока вызывает его, а затем завершает поток.Это не из-за чего-то особенного, связанного с самой процедурой запуска.