Rumah > Artikel > pembangunan bahagian belakang > Apakah penyegerakan, tak segerak, menyekat dan tidak menyekat dalam Python?
Sebelum memahami konsep lain, kita mesti terlebih dahulu memahami beberapa keadaan proses. Semasa menjalankan program, disebabkan oleh kawalan algoritma penjadualan sistem pengendalian, program akan memasuki beberapa keadaan: sedia, berjalan dan disekat.
Keadaan sedia: Apabila proses telah diperuntukkan semua sumber yang diperlukan kecuali CPU, ia boleh dilaksanakan serta-merta selagi ia memperoleh pemproses Keadaan proses pada masa ini dipanggil keadaan sedia.
Keadaan Pelaksanaan/Berjalan (Berjalan) Apabila proses telah memperoleh pemproses dan programnya sedang dilaksanakan pada pemproses, keadaan proses pada masa ini dipanggil keadaan pelaksanaan.
Apabila proses yang dilaksanakan dalam keadaan Disekat tidak dapat dilaksanakan kerana menunggu peristiwa berlaku, proses tersebut akan menyerahkan pemproses dan berada dalam keadaan disekat. Terdapat banyak peristiwa yang menyebabkan penyekatan proses, seperti menunggu I/O selesai, penimbal aplikasi tidak dapat berpuas hati, menunggu surat (isyarat), dll.
Apa yang dipanggil tak segerak bermakna anda tidak perlu menunggu tugas bergantung selesai, tetapi hanya memaklumkan tugas bergantung kepada kerja yang perlu diselesaikan, dan tugas yang bergantung juga Laksanakan serta-merta, selagi anda menyelesaikan keseluruhan tugasan, ia akan diselesaikan. Sama ada tugas yang bergantung itu benar-benar selesai pada akhirnya, tugas yang bergantung padanya tidak dapat ditentukan, jadi ia adalah urutan tugas yang tidak boleh dipercayai.
Contoh
Cara pertama: pilih untuk menunggu dalam barisan;
Cara kedua: pilih untuk mengambil yang kecil nota di atasnya saya mempunyai nombor saya, dan apabila giliran mencapai nombor saya, orang di kaunter akan memberitahu saya bahawa giliran saya untuk mengendalikan perniagaan; bekas (menunggu dalam talian) adalah penyegerakan Menunggu pemberitahuan mesej, iaitu, saya perlu menunggu untuk status perniagaan bank; pemberitahuan secara tidak segerak. Dalam pemprosesan mesej tak segerak, orang yang menunggu pemberitahuan mesej (dalam kes ini, orang yang menunggu untuk mengendalikan perniagaan) sering mendaftarkan mekanisme panggil balik Apabila peristiwa yang ditunggu dicetuskan, mekanisme pencetus (dalam kes ini, orang di counter) melewati beberapa jenis mekanisme panggil balik Mekanisme (dalam kes ini nombor yang ditulis pada sekeping kertas kecil, dipanggil nombor) mencari orang yang menunggu acara itu.
Contoh
Teruskan contoh di atas, sama ada anda sedang beratur atau menggunakan nombor untuk menunggu pemberitahuan, jika semasa proses menunggu, pelayan Jika anda tidak boleh melakukan apa-apa lagi kecuali menunggu pemberitahuan mesej, maka mekanisme menyekat, yang ditunjukkan dalam program, iaitu, program telah disekat pada panggilan fungsi dan tidak boleh terus dilaksanakan.
Nota: Borang tidak menyekat segerak sebenarnya tidak cekap Bayangkan anda sedang bercakap di telefon dan perlu mendongak untuk melihat jika baris gilir telah sampai kepada anda. Jika membuat panggilan dan memerhati kedudukan baris gilir dianggap sebagai dua operasi program, atur cara perlu bertukar-tukar antara dua tingkah laku yang berbeza ini, yang jelas tidak cekap borang tidak menyekat tak segerak adalah Tiada masalah seperti itu; kerana membuat panggilan adalah perniagaan anda (pelayan), dan memberitahu anda adalah perniagaan kaunter (mekanisme pencetus mesej), dan program tidak bertukar-tukar antara dua operasi yang berbeza.
4. Segerak/tak segerak dan menyekat/tidak menyekat
1. mesej Dicetuskan (dimaklumkan) bermakna menerima nota kecil Jika dia tidak boleh meninggalkan bank untuk melakukan perkara lain dalam tempoh ini, maka jelas sekali orang ini disekat dalam operasi menunggu ini.
Operasi tak segerak boleh disekat, tetapi ia tidak disekat semasa memproses mesej, tetapi disekat sementara menunggu pemberitahuan mesej.
3. Borang tidak menyekat tak segerak
Oleh kerana panggilan adalah urusan (pelayan) anda, dan memberitahu anda adalah urusan kaunter (mekanisme pencetus mesej), program ini tidak mempunyai dua Beralih yang berbeza ke depan dan ke belakang semasa operasi.
Atas ialah kandungan terperinci Apakah penyegerakan, tak segerak, menyekat dan tidak menyekat dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!