Pthread Code Only

#include <assert.h>
#include <pthread.h>

pthread_t *thread_array = NULL;

int main(){
        thread_array = (pthread_t*) malloc(sizeof(pthread_t) * thread_num);
        for(I = 0; I < thread_num; ++i){
                int rc = pthread_create(thread_array+i, &attr, analyzer, (void *) i);
                assert(rc == 0);
        }
        for(I = 0; I < thread_num; ++i){
                pthread_join(thread_array[i], NULL);
        }
        return 0;
}

pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_lock(&mutex1);
pthread_mutex_unlock(&mutex1);
 
pthread_mutex_init(&mutex2, NULL);
pthread_mutex_destroy(&mutex2, NULL);
 
int pthread_create(pthread_t *thread, 
                                 const pthread_attr_t *attr, 
                                 void *(*start_routine) (void *), 
                                 void *arg);
int pthread_join(pthread_t thread, void **retval);
 
pthread_t thread1;
pthread_create(&thread1, NULL, function, arg);
pthread_join(thread1, NULL, function, arg);
 
pthread_t thread_array1[i];
pthread_t *thread_array2 = NULL;
thread_array2 =  (pthread_t*) malloc(sizeof(pthread_t) * thread_num);
pthread_create(thread_array+i, &attr, analyzer, (void *) i);
pthread_join(thread_array[i], NULL);
 
pthread_attr_t attr;
pthread_attr_init(&attr);  
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
pthread_create(thread_array+i, &attr, analyzer, (void *) i);

pthread_attr_destroy(&attr);

沒有留言:

張貼留言