Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah penjadual Go menguruskan penciptaan M dan P dengan kehadiran operasi menyekat?

Bagaimanakah penjadual Go menguruskan penciptaan M dan P dengan kehadiran operasi menyekat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-31 05:20:02577semak imbas

How does the Go scheduler manage the creation of M and P in the presence of blocking operations?

Memahami Penciptaan M dan P dalam Penjadual Go

Penjadual Go beroperasi pada model yang melibatkan goroutine, utas OS (M) dan konteks /pemproses (P). Untuk mengoptimumkan prestasi, penjadual mengurus penciptaan dan penggunaan M dan P secara dinamik.

Penciptaan M

M dicipta apabila penjadual mengesan keperluan untuk melaksanakan penyekatan tugasan. Dalam kod contoh anda, gorouti melakukan operasi pangkalan data menyekat, yang akan mencetuskan penciptaan M tambahan. Bilangan tepat M yang dicipta bergantung pada bilangan gorouti yang disekat dan sumber sistem yang tersedia.

Penciptaan daripada P

P dicipta apabila goroutine baharu dilancarkan. Walau bagaimanapun, penjadual tidak mencipta P baharu untuk setiap goroutine. Sebaliknya, ia menggunakan semula kejadian P sedia ada, mengekalkan nombor tetap P bersamaan dengan nilai GOMAXPROCS, biasanya ditetapkan kepada bilangan CPU yang tersedia.

Dalam Kod Contoh Anda

Dalam kod ujian anda, anda mencipta 50 goroutine dalam dua kelompok. Memandangkan operasi pangkalan data sedang menyekat, M akan dibuat mengikut keperluan untuk mengendalikan goroutin penyekat. Walau bagaimanapun, kerana tika P digunakan semula, hanya 8 P akan dibuat, mewakili bilangan teras maya pada sistem anda.

Lebih Banyak Sumber

Untuk penerokaan lanjut mengenai perkara ini topik, rujuk sumber ini:

  • [Go Goroutine, OS Thread dan CPU Pengurusan](https://www.programming-books.net/2019/07/understand-go-scheduler-goroutine.html)
  • [Memahami Model Go GMP (Goroutine-M-P)](https: //blog.container-solutions.com/understanding-go-gmp-goroutine-m-p-model)

Atas ialah kandungan terperinci Bagaimanakah penjadual Go menguruskan penciptaan M dan P dengan kehadiran operasi menyekat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn