2013-06-03 3 views
0

모든 스레드가 삭제 된 후에 전역 변수 BitArray의 값을 어떻게 유지합니까? 스레드를 종료하기 전에 변수를 인쇄하려고 시도하지만 스레드가 임의의 순서로 실행되기 때문에이 시점에서 값이 덜 표시됩니다. 오히려 스레드가 작업 한 후에 변수를 인쇄하려고합니다. 내 코드는 다음과 같습니다. 미리 감사드립니다 :). 선언 BitArray 글로벌pthread가 완료된 후 변수 인쇄

int main(){ 

create some threads... to modify BitArray 

PrintBitStreamData(BitArray, maxsize); //prints output 

pthread_attr_destroy(&attr); 
pthread_join(threadid[0], &status); 
pthread_exit(NULL); 

PrintBitStreamData(BitArray, maxsize); //doesn't to anything 


} 
+1

모든 참여 결과 출력 전에 스레드. – Aneri

+0

그래서 pthread_join 이후에 출력물 인 PrintBitStreaData를 넣어야합니까? – codeBarer

+0

그것은 매력처럼 작동합니다. 감사! – codeBarer

답변

0

감사 Aneri. 나는 모든 스레드를 끝내기 위해 이렇게했습니다. 위한

생성

// (나는 < max_threads이, I = 0 난 ++) 는 pthread_create

//이

종료 (&는 ... [I] threadid) ...

for (i = 0; i < max_threads; i++){ 

    pthread_join (threadid[i],&status) 

} 

인쇄

관련 문제