golang ialah pelbagai proses, dan model utasnya ialah model MPG Secara umumnya, proses Go dan utas kernel mempunyai banyak-ke-banyak surat-menyurat, jadi pertama sekali, ia mestilah berbilang benang. Golang mempunyai beberapa model N go yang dipanggil boleh dibuat di bawah benang M Secara umumnya, N adalah lebih besar daripada M. Walau bagaimanapun, penjadualan coroutine ditentukan oleh Go runtime adalah ditekankan bahawa pembangun harus Menggunakan saluran untuk penyegerakan antara coroutine.
Persekitaran pengendalian artikel ini: sistem Windows 10, versi go1.20, komputer DELL G3.
golang bukan satu proses, tetapi berbilang benang.
Golang mempunyai beberapa model N go yang dipanggil N go yang boleh dibuat di bawah benang M Secara umumnya, N adalah lebih besar daripada M. Pada asasnya ia adalah model berbilang benang, tetapi penjadualan coroutine ditentukan oleh. Masa jalanan Go, yang menekankan pembangunan Pembaca harus menggunakan saluran untuk penyegerakan antara coroutine.
Bagi utas, memandangkan tahap bahasa tidak terbuka, anda boleh memahaminya sebagai model berbilang coroutine Beberapa rutin go boleh dibuat pada satu utas Secara umumnya, bilangan utas yang sama dengan bilangan teras CPU sudah tentu, sebenarnya Ia masih ditentukan oleh runtime.
Mengenai penjadualan goroutine, ini sebenarnya sentiasa berkembang, saya hanya akan bercakap tentang model GMP yang dijalankan pada utas M Setiap kali tugasan dilaksanakan, ia akan menyemak baris gilir yang boleh dilaksanakan pada P (pemproses). Terdapat goroutine boleh laku dalam baris gilir Setelah tiada goroutine boleh laku pada P semasa, ia akan mencuri goroutine dalam baris gilir boleh laku P yang lain.
Secara teorinya, penciptaan goroutine hanya dihadkan oleh ingatan Secara umumnya, maksimum adalah 2KB Untuk thread dengan ruang 2MB, secara teorinya, ia boleh mencapai 1,000 dengan mudah, jadi jumlahnya benang OS tidak akan Bertambah apabila bilangan goroutine yang dicipta meningkat. Penjadualan utas agak intensif prestasi untuk Go. Penukaran jadual yang kerap hanya akan wujud antara goroutin dan utas hanya akan mengekalkan bilangan utas aktif yang sama dengan bilangan CPU.
Mengenai proses dan rangkaian
1. Proses ialah proses pelaksanaan program dalam sistem pengendalian Ia adalah unit asas untuk peruntukan sumber dan penjadualan oleh sistem pelaksanaan program Unit asas peruntukan sumber dan pengurusan dalam proses. Satu proses mempunyai sekurang-kurangnya 5 keadaan asas: keadaan awal, keadaan pelaksanaan, keadaan menunggu, keadaan sedia dan keadaan penamatan.
Dalam istilah orang awam: proses ialah program pelaksanaan.
2. Benang
Benang ialah contoh pelaksanaan proses dan unit terkecil pelaksanaan program Ia adalah unit asas yang lebih kecil daripada proses dan boleh berjalan secara bebas.
Dalam istilah orang awam: proses boleh mencipta berbilang utas, dan berbilang utas dalam proses yang sama boleh dilaksanakan secara serentak Untuk menjalankan program, mesti ada sekurang-kurangnya satu proses.
Atas ialah kandungan terperinci Adakah golang pelbagai proses?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!