Linux, C. Ich habe mehrere Threads erstellt, um Workloads auszuführen, und ich möchte diesen Threads signalisieren, dass sie nach einer bestimmten Sekunde/Zeit anhalten/beenden. Wie implementiere ich das mit C?Linux, C: beende mehrere Threads nach einigen Sekunden (Timer?)
void *do_function(void *ptr)
{
//calculating, dothe workload here;
}
int run(struct calculate_node *node)
{
pthread_t threads[MAX_NUM_THREADS];
for (t = 0; t < node->max_threads; t++) {
rc = pthread_create(&threads[t], NULL, do_function, (void*)node);
if(rc) return -1;
}
//how do I create timer here to fire to signal those threads to exit after specified seconds?
for (t = 0; t < node->max_threads; t++) {
pthread_join(threads[t], NULL);
}
free(threads);
}
danke!