2013-01-03 8 views
0

내 질문이 내가이 코드 조각이있다 파일 범위에서 다양하게 수정 '뮤텍스를'/ 가변적 수정 파일 범위의 'threads'. 나는 사용자가 정의한 모든 뮤텍스와 스레드를 생성하고 생성 된 모든 스레드에서 사용할 수 있기를 원합니다.뮤텍스

답변

0

다음은 부분적인 대답입니다. 게시 된 코드에는 다른 오류 (예 : 포인터를 색인으로 사용)가 있으며 다음 코드는 가능한 최소한의 오류 처리 만 수행합니다. 그 세부 사항을 정리하도록하겠습니다.

당신의 reply.I는 또한 "안녕하세요 임 번호 % d 개의 스레드"하지만 내가 스레드 내에서, 예를 들어 5 개 스레드의 printf를 만들 때 가끔 가끔 덜 인쇄 것으로 보인다 말을 스레드에서의 printf에 놓여있다
+0

감사에 대한

// ... int number; pthread_mutex_t* mutex; // declare as pointers instead of arrays pthread_t* threads; // so they can be dynamically sized void alloc_thread_info(int number) { int i; // allocate the arrays with the requested size mutex = calloc(number, sizeof(*mutex)); threads = calloc(number, sizeof(*threads)); if (!mutex || !threads) { abort(); } for (i = 0; i < number; ++i) { pthread_mutex_init(&mutex[i]); } return; } 
5 또는 때때로 hellos보다. – Izanagi