Сам себе и отвечаю:
оказывается, можно функцией pthread_kill посылать соответствующие сигналы потоку. Нижеследующая программка иллюстрирует сказанное.#include <pthread.h>
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
//это отдельный поток, выполняется параллельно после его запуска функцией pthread_create()
//печатает каждую секунду сообщение и так пока программа (процесс) не завершится
void* my_t(void *hlam){
while(1){
sleep(1); //sleep 1 second
puts("My thread is work"); //still alive :)
}
};
int main(){
pthread_t th; //дескриптор создаваемого потока
pthread_create(&th, NULL, my_t, (void *)"none"); //создаём поток
puts("***Thread was created***"); //поток рождён.
sleep(3); //сон 3 секунды
pthread_kill(th, SIGSTOP); //шлём сигнал "СТОП"
puts("***Thread was suspended***");
sleep(5);
pthread_kill(th, SIGCONT); //шлём сигнал "ПРОДОЛЖИТЬ"
puts("***Thread was resumed***");
sleep(3);
return 0;
}