Tôi đang cố gắng tìm ra cách loại bỏ sự phụ thuộc vào pthread_timedjoin_np vì tôi đang cố gắng xây dựng một số mã trên OSX.thay thế cho pthread_timedjoin_np
Ngay bây giờ tôi có một Hàng đợi các chủ đề mà tôi đang popping, làm điều đó pthread_timedjoin_np và nếu họ không trở lại, họ được đẩy trở lại trên hàng đợi.
Sự kết thúc của thread_function được gọi cho mỗi luồng thực hiện một pthread_exit (0); sao cho luồng nhận được có thể kiểm tra giá trị trả về bằng không.
Tôi nghĩ rằng tôi có thể thử sử dụng pthread_cond_timedwait() để đạt được hiệu ứng tương tự, tuy nhiên tôi nghĩ rằng tôi đang thiếu một bước.
Tôi nghĩ mình có thể tạo công nhân Chỉ báo tín hiệu một điều kiện AND pthread_exit() trong một mutex, và B công nhân có thể đánh thức tín hiệu và sau đó pthread_join(). Vấn đề là, Thread B không biết thread nào đã ném tín hiệu điều kiện. Tôi có cần phải truyền đạt điều đó một cách rõ ràng như một phần của tín hiệu conditonal hay không?
Cảm ơn
Derek
Không phải là một bản sao, nhưng một số các câu trả lời có thể hữu ích: http: // stackoverflow.com/questions/73468/non-blocking-pthread-join – Corbin