- Cho phép chương trình chạy multithreaded 1 cách năng suất và hiệu quả hơn.
- Go scheduler dựa vào cơ chế của OS scheduler
- Việc không biết cơ chế hoạt động của nó cũng ko ảnh hưởng đến việc code. Nhưng khi mình hiểu được cơ chế hoạt động của nó thì giúp mình thiết kế multithreaded 1 cách đúng đắn.
- OS scheduler and Go scheduler
OS scheduler
- Chương trình chỉ là một chuỗi các lệnh máy cần được thực hiện tuần tự lần lượt.
- Để thực hiện được thì chương trình sử dụng 1 khái niệm là Thread.
- Công việc của Thread là tính toán và thực hiện tuần tự bộ hướng dẫn được chỉ định.

- Mỗi process cung cấp tài nguyên cần thiết để thực thi chương trình.
- Mỗi process có không gian địa chỉ ảo, mã thực thi và bộ nhớ cần thiết.
- Thread là 1 thực thể trong process có thể được lên lịch để thực thi chương trình.
- Mỗi Process được bắt đầu bằng một luồng duy nhất, thường được gọi là Thread chính.
- Thread có khả năng tạo thêm nhiều threads phụ thuộc vào nhu cầu.
- Các threads chạy độc lập với nhau và việc quyết định lập lịch sẽ được quyết định ở thread level(không phải ở process level).
- Threads có thể chạy concurently(chạy trên 1 lõi) hoặc parallel(chạy trên nhiều lõi khác nhau).
- Trên 1 process, tại 1 thời điểm thì chỉ có 1 thread chạy.
Executing Instructions(hướng dẫn thực hiện)
Program counter(PC - bộ đếm chương trình) or Instruction pointer(IP - con trỏ lệnh) nằm trong process và cho phép Thread theo dõi được lệnh tiếp theo được thực thi.
