29 lines
529 B
C
29 lines
529 B
C
#include <pthread.h>
|
|
#include <unistd.h>
|
|
|
|
static const int NTHREADS = 10;
|
|
static pthread_barrier_t barrier;
|
|
|
|
static void *
|
|
thread_func (void *p)
|
|
{
|
|
pthread_barrier_wait (&barrier);
|
|
return NULL;
|
|
}
|
|
|
|
int
|
|
main (void)
|
|
{
|
|
alarm (60);
|
|
|
|
pthread_t threads[NTHREADS];
|
|
pthread_barrier_init (&barrier, NULL, NTHREADS + 2);
|
|
|
|
for (int i = 0; i < NTHREADS; i++)
|
|
pthread_create (&threads[i], NULL, thread_func, NULL);
|
|
|
|
pthread_barrier_wait (&barrier);
|
|
|
|
for (int i = 0; i < NTHREADS; i++)
|
|
pthread_join (threads[i], NULL);
|
|
}
|