0
sem_t (세마포) 객체의 값을 1보다 크게 할 수 있습니까? sem_post는 1 씩 증가합니다. sem_set이 있습니까?어떻게 POSIX sem_t 세마포어를 1 씩 증가시킬 수 있습니까?
sem_t (세마포) 객체의 값을 1보다 크게 할 수 있습니까? sem_post는 1 씩 증가합니다. sem_set이 있습니까?어떻게 POSIX sem_t 세마포어를 1 씩 증가시킬 수 있습니까?
예, sem_t는 1보다 큰 값을 취할 수 있습니다. sem_init
을 사용하면 세마포어를 다른 값으로 초기화 할 수 있습니다. this link 인용 :
가 세마포어를 초기화 sem_init()를 사용하려면
가int sem_init(sem_t *sem, int pshared, unsigned int value);
pshared가이 플래그 이 있는지 여부를 나타내는 것이다 초기화하는 세마포어 객체SEM 포인트 세마포어는 fork() 프로세스와 공유해야합니다. 내가 어떤 잘 모르는 것 같아요
sem_init(&sem_name, 0, 10);
: 리눅스 쓰레드는 현재
예 의 사용에 세마포어를 설정하는 초기 값 입니다 세마포어을 공유 지원하지 않습니다 sem_t를 임의의 값만큼 증가시킬 수있는 함수.
이 질문도 가능한 복제본을 참조하십시오. http://shackoverflow.com/questions/3491762/incrementing-the-value-of-posix-semaphores-by-more-than-1 – razlebe
pshared가 세마포를 공유하지 못하게합니다. 갈래 낀 아이들과. 세마포어가 이미 공유 된 메모리에 생성 된 경우에만 유용하며,이 경우 pshared 세마포는 자식뿐만 아니라 공유 메모리를 매핑 할 수있는 다른 프로세스와 공유 될 수 있습니다. –