sem————信号量对象。
pshared——信号量类型:0为线程共享;<0为进程共享。
value———初始值。
返回值———0成功,-1失败。
返回值————0成功,-1失败。
返回值————0成功,-1失败。
返回值————0成功,-1失败。
abstime————等待时间。
返回值————0成功,-1等待超时。
返回值————0成功,-1失败。
#include <stdio.h> #include <semaphore.h> #include <pthread.h> void* func(void* arg){ sem_wait(arg); printf("enter func\n"); sleep(1); printf("do something\n"); sleep(1); printf("level func\n"); sem_post(arg); } int main(int argc,int argv[]){ sem_t sem; sem_init(&sem,0,1); pthread_t tids[3]; int i; for(i=0;i<3;i++){ pthread_create(&tids[i],NULL,func,&sem); } for(i=0;i<3;i++){ pthread_join(tids[i],NULL); } sem_destroy(&sem); }
