Đây là một câu hỏi chung chung mà tôi luôn tự hỏi.
Nói chung, CPU có chuyên sâu để tạo ra các luồng thực hiện các vòng lặp "trong khi không đúng ..." hay tương tự không?
Ví dụ: giả sử tôi làm:
// pseudo-code
new Thread(function() {
while (!useHasDoneSomething) {
// do nothing...
}
alert("you did something!");
}
Vì vậy, nó chỉ là một đoạn mã chạy trong một chuỗi chờ đợi điều gì đó xảy ra.
Vì lý do gì tôi tưởng tượng rằng điều này sẽ gây áp lực cho CPU. Rốt cuộc, mặc dù chỉ là một vòng lặp nhỏ, nhưng nó lại chạy vòng lặp ngay khi một chu trình được thực hiện. Điều này có nghĩa là nó sẽ trải qua chu kỳ nhiều lần trong một phần nghìn giây chứ? ... Mỗi nano giây!?
Hệ điều hành sẽ "xử lý" chương trình và (các) luồng, phải không? Nhưng đó vẫn là một sự chú ý khủng khiếp để chạy một vòng lặp. Nếu CPU không có gì khác để làm, nó sẽ không tập trung vào vòng lặp đó, do đó sẽ tiêu tốn hết thời gian nhàn rỗi ?
Điều gì xảy ra nếu tôi tạo 1000 chủ đề mà tất cả thực hiện cùng một vòng lặp? Làm thế nào điều đó có thể ảnh hưởng đến hiệu suất / chu kỳ CPU?
Hơn nữa, đây là cách các sự kiện hoạt động trong nội bộ? Khi bạn đang 'lắng nghe' cho một sự kiện bằng Java, .NET, Javascript, v.v. (chẳng hạn như nhấn nút hoặc thay đổi kích thước cửa sổ), có một chuỗi vòng lặp được tạo không?