У меня есть очередь заданий, и я хочу создать пул из 4 потоков, куда я могу перебрасывать свои задания.То, что я застрял в том, как сделать потоки и удерживать их, пока нет работы.
JOB QUEUE | job1 | job2 | job3 | job4 | ..
THREAD POOL | thread1 | thread2 | thread3 | thread4 |
Чтобы создать потоки, которые у меня есть в данный момент в точке инициализации:
for (t=0; t<num_of_threads; t++){
pthread_create(&(threads[t]), NULL, doSth2, NULL);
}
Где num_of_threads = 4 и doSth2 - это функция, в которой ничего нетИтак, как только я создал 4 потока, и они закончили с doSth2, как я могу дать им новую работу, не убивая их?