Tôi rất tò mò về cách thức ngôn ngữ Go lập lịch trình goroutines. Nó chỉ chuyển đổi trong các yêu cầu kênh và I/O hay nó có vòng lặp chuyển mạch coroutine định kỳ?Làm cách nào để Go quyết định thời điểm chuyển ngữ cảnh giữa các goroutines?
6
A
Trả lời
8
Go chưa có bộ lập lịch preemptive, nhưng một là planned for 1.2. Vì vậy, không, Go sẽ không chuyển ngữ cảnh trong quá trình tính toán chỉ CPU, chỉ trong I/O (đọc từ bộ nhớ cũng được coi là I/O nếu nó không có trong sổ đăng ký). Bạn có thể đọc một số cuộc thảo luận về nó trong Issue 543 - preemptive scheduling.
Các vấn đề liên quan
- 1. Chủ đề của tôi có thể giúp hệ điều hành quyết định thời điểm chuyển ngữ cảnh sang ngữ cảnh không?
- 2. Làm cách nào để xác định thời điểm hai điểm di chuyển hiển thị với nhau?
- 3. Làm cách nào để chuyển một ngữ cảnh tới AsyncTask?
- 4. Golang: http server để mở các goroutines
- 5. Java quyết định thời điểm nhập như thế nào?
- 6. Quyết định giữa bối cảnh hoạt động hoặc bối cảnh ứng dụng để khởi tạo SQLiteOpenHelper
- 7. Sử dụng Goroutines của Google Go để tạo một mạng Bayes
- 8. Làm cách nào để hiển thị sự khác biệt theo ngữ cảnh giữa hai dấu thời gian trong JavaScript?
- 9. Làm thế nào để chia sẻ kết nối mysql giữa goroutines http?
- 10. Làm cách nào để quyết định khoảng thời gian nào cần sử dụng cho requestLocationUpdates?
- 11. Làm cách nào để chuyển các biến ngữ cảnh của tôi sang tệp javascript ở Django?
- 12. Đồng thời Golang: cách nối thêm vào cùng một lát từ các goroutines khác nhau
- 13. Chuyển ngữ cảnh canvas
- 14. Làm cách nào để tôi có thể xác định ngữ cảnh Java Applet đang chạy mà không cần chuyển ID?
- 15. Làm cách nào để tạo ngữ cảnh bitmap chỉ alpha
- 16. Quyết định ngôn ngữ nào trong C# làm phiền bạn?
- 17. Tìm hiểu về goroutines
- 18. Làm cách nào để định cấu hình ngữ cảnh/bảng Người dùng?
- 19. Làm cách nào để chuyển thông tin giữa các phân đoạn bảng phân cảnh?
- 20. Làm cách nào để chuyển các tham số vào tệp jar tại thời điểm thực thi?
- 21. Làm cách nào để kiểm tra ngữ cảnh và phiên trong Django sau khi chuyển hướng?
- 22. Làm cách nào để chuyển giá trị ngữ cảnh sang Bản đồ Automapper?
- 23. Làm cách nào để thêm menu ngữ cảnh vào ListBoxItem?
- 24. Làm cách nào để chuyển ngữ cảnh từ hoạt động này sang hoạt động khác?
- 25. Làm cách nào để chuyển hướng trong Django bằng ngữ cảnh?
- 26. Làm cách nào để chuyển thông tin ngữ cảnh mẫu khi sử dụng HttpResponseRedirect ở Django?
- 27. Chuyển thuộc tính sang ngữ cảnh Spring
- 28. Làm cách nào để chuyển ngữ cảnh ứng dụng (Android) sang một lớp Java?
- 29. Làm cách nào để chuyển ngữ cảnh sang chức năng ẩn danh?
- 30. iOS4 - chuyển ngữ cảnh nhanh
Nếu tôi hiểu chính xác, hãy gọi những gì được mô tả trong lịch biểu ưu tiên của các liên kết này quá xa vời. Nó không thực sự ưu tiên, nó chỉ là sản lượng được đặt ở nhiều nơi hơn, vô hình đối với lập trình viên. Chắc chắn, điều đó làm cho chương trình 'đồng thời' hơn, nhưng nó vẫn hợp tác. Tôi nghĩ rằng không thể thực hiện đa nhiệm ưu tiên mà không cần sử dụng VM đặc biệt (như Erlang) hoặc không hỗ trợ hệ điều hành trực tiếp (chủ đề OS). –
Bạn có thể vui lòng cập nhật câu trả lời của mình không? Tôi đã nghe nói rằng Go đã có thể làm trống trước tại các cuộc gọi chức năng trong một thời gian, nhưng tôi không biết chắc chắn. –