Сначала сохраните идентификатор потока
pthread_create(&thr, ...)
, а затем позвоните
pthread_cancel(thr)
Однако это не рекомендуемая практика программирования!Лучше использовать механизм связи между потоками, например семафоры или сообщения, чтобы сообщить потоку, что он должен остановить выполнение.
Обратите внимание, что pthread_kill (...) фактически не завершает принимающий поток, а вместо этого доставляетсигнал к нему, и это зависит от того, что происходит с сигналом и обработчиками сигнала.