Bạn không thể đảm bảo trong .Net rằng hai Thread
s chạy trên hai lõi riêng biệt. Trên thực tế, bạn cũng không thể đảm bảo rằng một cái Thread
sẽ chỉ chạy trên một lõi (!) .
Điều này là do các luồng được quản lý không giống như các luồng của HĐH - một luồng được quản lý duy nhất có thể sử dụng nhiều luồng của HĐH để hỗ trợ nó. Trong C #, bạn chỉ từng giao dịch trực tiếp với Thread
các s được quản lý (ít nhất, mà không dùng đến p / invoke để gọi các hàm phân luồng WinAPI, điều mà bạn không bao giờ nên làm) .
Tuy nhiên, bộ lập lịch luồng .Net và Windows rất tốt trong những gì họ làm - họ sẽ không chạy hai luồng trên một lõi trong khi lõi thứ hai hoàn toàn không hoạt động. Vì vậy, nói chung, bạn không cần phải lo lắng về nó.
t1
vàt2
được thực thi tại các thời điểm khác nhau theo thứ tự tùy ý (ví dụ: có thểt2
bắt đầu trướct1
trong một số mô hình).