Posix线程

在linux kernel 2.6中,Posix线程采用 NPTL,1:1模型。

创建:

    int pthread_create(pthread* thread,pthread_attr_t* attr,void*(*start_routine)(void*),void*arg);

等待:

    int pthread_join(pthread_t thread,void** rval_ptr);

同步:

Posix 线程实现同步可采用Posix信号量,互斥对象或条件对象。

 

1.互斥对象

     互斥对象类型为pthread_mutex_t

pthread_mutex_t mymutex=PTHREAD_MUTEX_INITIALIZER; ... pthread_mutex_lock(&mymutex); //访问临界资源 pthread_mutex_unlock(&mymutex);

2.信号量

POSIX 的无名信号量的函数有以下几个:
#include <semaphore.h>;
int sem_init(sem_t *sem,int pshared,unsigned int value);
int sem_destroy(sem_t *sem);
int sem_wait(sem_t *sem);
int sem_trywait(sem_t *sem);
int sem_post(sem_t *sem);
int sem_getvalue(sem_t *sem);

你可能感兴趣的:(JOIN,thread,linux)