Apabila Go Scheduler Mencipta M dan P Baharu
Dalam bahasa pengaturcaraan Go, goroutine dilaksanakan oleh gabungan sistem pengendalian ( OS), pemproses goroutine (P) dan sumber mesin (M). Walaupun penting untuk memahami cara komponen ini berinteraksi, adalah sukar untuk menentukan masa M dan P baharu dicipta.
Memahami Penciptaan M dan P
M adalah singkatan untuk mesin, dan ia mewakili benang OS ringan yang melaksanakan goroutin. P, sebaliknya, bermaksud pemproses dan menguruskan pelaksanaan goroutin pada M tertentu. Penjadual Go mencipta M baharu seperti yang diperlukan untuk mengendalikan gorouti.
Sekiranya Tugasan Menyekat
Dalam contoh anda, anda telah menentukan fungsi ujian yang menghasilkan berbilang goroutine untuk melaksanakan operasi pangkalan data. Setiap goroutine direka bentuk untuk menyekat untuk tempoh tertentu, mensimulasikan senario di mana goroutine tidak dilaksanakan secara aktif. Dalam kes ini, penjadual Go tidak akan mencipta M tambahan kerana M sedia ada boleh mengendalikan goroutin penyekat tanpa gangguan.
Walau bagaimanapun, jika goroutine melakukan panggilan sistem atau menghadapi operasi menyekat, M yang melaksanakan goroutine itu akan menyekat buat sementara waktu. Untuk mengekalkan responsif, penjadual akan mencipta M baharu dan menetapkannya kepada P baharu untuk melaksanakan sebarang goroutine yang belum selesai.
Perhubungan M dan P
Penting untuk diperhatikan bahawa terdapat hubungan 1:1 antara M dan P. M tunggal hanya boleh berjalan pada satu P pada satu masa, dan sebaliknya. Apabila M menyekat, penjadual akan mencari P terbiar. Jika tiada P terbiar tersedia, ia akan mencipta P baharu dan menetapkannya kepada M yang menunggu.
Sumber Tambahan
Untuk penerokaan lanjut mengenai topik ini, rujuk bahan berikut:
Memahami apabila penjadual Go mencipta M dan P baharu adalah penting untuk mengoptimumkan aplikasi Go anda. Dengan mempertimbangkan potensi untuk menyekat operasi dan hubungan 1:1 antara M dan P, anda boleh mereka bentuk kod anda untuk pengurusan goroutine yang cekap dan memaksimumkan kesesuaian dalam had sumber yang tersedia.
Atas ialah kandungan terperinci Bilakah Penjadual Go Mencipta M dan P Baharu untuk Tugasan Menyekat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!