2013-04-15 41 views
5

tôi cần phải thực hiện một sợi chờ đợi cho đến khi một trong haiC++ 11 thay thế pthread_cond_timedwait

  • một thời gian chờ hết hạn, hoặc
  • một biến được thay đổi bởi một thread

Sau khi một số nghiên cứu tôi đã phát hiện ra pthreads có pthread_cond_timedwait có thể hữu ích trong trường hợp này nếu tôi muốn sử dụng pthreads.

Tôi đang sử dụng chuỗi C++ 11 thay thế. Có một lựa chọn phù hợp cho tôi mà không hoàn toàn đi qua pthreads?

Trả lời

9

Có, bạn muốn std::condition_variable từ <condition_variable>, có chức năng thành viên wait_for mất một khoảng thời gian.

Lớp condition_variable là một đồng bộ hóa ban có thể được sử dụng để ngăn chặn một chủ đề, hoặc nhiều chủ đề cùng một lúc, cho đến khi:

  • một thông báo được nhận từ thread khác
  • thời gian chờ hết hạn
+0

Cảm ơn! Nó hoạt động hoàn hảo cho mục đích của tôi. – Rob013