Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chương trình C# hiển thị độ ưu tiên của luồng (Thread Priority)

Mỗi luồng trong C# có thuộc tính Priority (enum ThreadPriority) xác định mức ưu tiên lập lịch CPU. Các mức: Lowest, BelowNormal, Normal (mặc định), AboveNormal, Highest.

Mã nguồn

using System;
using System.Threading;

namespace Demo {
    class MyClass {
        static void Main(string[] args) {
            // Lấy luồng hiện tại
            Thread thread = Thread.CurrentThread;
            thread.Name = "My Thread";
            
            // Hiển thị độ ưu tiên
            Console.WriteLine("Độ ưu tiên luồng = {0}", thread.Priority);
            Console.ReadKey();
        }
    }
}

Kết quả

Độ ưu tiên luồng = Normal

Thay đổi độ ưu tiên

thread.Priority = ThreadPriority.Highest;
// Hoặc
thread.Priority = ThreadPriority.AboveNormal;

Các mức độ ưu tiên

MứcGiá trịMô tả
Lowest0Ưu tiên thấp nhất
BelowNormal1Dưới bình thường
Normal2Mặc định
AboveNormal3Trên bình thường
Highest4Ưu tiên cao nhất

Lưu ý quan trọng

  • Độ ưu tiên chỉ là gợi ý (hint) cho OS scheduler — không đảm bảo thứ tự thực thi.
  • Lạm dụng Highest có thể làm treo hệ thống (starvation các luồng khác).
  • Ứng dụng .NET hiện đại nên dùng Task + TaskScheduler thay vì thao tác Thread trực tiếp.
  • Luồng GC, Finalizer, ThreadPool có độ ưu tiên riêng do runtime quản lý.