Câu trả lời ngắn gọn là không thể. Nhưng đây không phải là điểm thực sự cần giải quyết.
Điểm thưởng nếu bạn biết cách tiêu diệt một chuỗi con.
KHÔNG BAO GIỜ
Ngay cả trong ngôn ngữ mà ủng hộ chủ đề giết chết (see Java here), nó được khuyến khích không.
thực hiện của một chủ đề thường được mã hóa với rõ ràng điểm tương tác, và thường có giả định ngầm rằng không có sự gián đoạn khác sẽ xảy ra.
Ví dụ nghiêm trọng nhất là tài nguyên khóa học: phương pháp "giết" ngây thơ sẽ dừng thực thi chuỗi; điều này có nghĩa là không phát hành bất kỳ tài nguyên nào. Bạn có thể nghĩ về trí nhớ, ít nhất là lo lắng của bạn. Hãy tưởng tượng, thay vào đó, tất cả các Mutex
mà không được mở khóa và sẽ tạo ra deadlocks sau này ...
Tùy chọn khác sẽ là tiêm panic
trong chủ đề, điều này sẽ gây khó chịu. Tuy nhiên, bạn không thể chỉ bắt đầu thư giãn tại bất kỳ thời điểm nào!Chương trình sẽ phải xác định điểm an toàn mà tại đó việc tiêm panic
sẽ được đảm bảo an toàn (việc tiêm nó vào bất kỳ điểm nào khác có nghĩa là có khả năng làm hỏng các đối tượng dùng chung); làm thế nào để xác định các điểm an toàn như vậy và tiêm panic
có một vấn đề nghiên cứu mở bằng ngôn ngữ bản địa, đặc biệt là các vấn đề được thực thi trên các hệ thống W^X
(nơi các trang bộ nhớ có thể ghi được hoặc không thể thực thi được).
Tóm lại, không có cách nào được biết một cách an toàn (cả trí nhớ và khôn ngoan về chức năng) sẽ xóa một chuỗi.
Nguồn
2016-03-09 09:21:09