Có nhiều luồng hoạt động trên một tác vụ. Một khi một thread thành công tất cả các chủ đề nên được hủy bỏ, như công việc được thực hiện. Làm thế nào tôi có thể hủy bỏ các chủ đề khác khi một sợi đã chấm dứt thành công? Ai sẽ gọi pthread_cancel()
và chuỗi thành công sẽ cho biết main
hoặc chuỗi tạo ra nó (giá trị trả về?).Hủy bỏ chủ đề POSIX sau khi một công việc chung được thực hiện
CẬP NHẬT
Tôi không muốn chỉ cần gọi exit
như tôi muốn bây giờ một số kiểm soát. Ví dụ sau khi các chủ đề được hủy bỏ, tôi sẽ xử lý kết quả tìm thấy theo chuỗi thành công và có thể thực hiện một số xử lý khác, hoặc đơn giản là muốn giữ cho quá trình chạy cho một số công việc khác.
Tại sao bạn cần nhiều chủ đề cho tác vụ này, nếu bạn định vứt bỏ công việc được thực hiện bởi tất cả trừ một trong số chúng? Chỉ cần thực hiện công việc một lần trong một chuỗi. – zwol
nói rằng, tôi có một danh sách rất lớn để tìm kiếm tuyến tính, tôi sẽ chuyển các phân đoạn của danh sách đến các chủ đề khác nhau và một khi tìm thấy một kết quả phù hợp, trả về. những người khác bị hủy. – phoxis
Tôi đoán điều đó có ý nghĩa trong một ngữ cảnh nơi tìm kiếm bạo lực là lựa chọn duy nhất, nhưng nếu bạn có bất kỳ cấu trúc nào trong dữ liệu của mình, thì có các thuật toán tốt hơn. – zwol