pengaturcaraan asynchronous dan multi -threading: dua kaedah yang melengkapi satu sama lain
Ramai pemaju pada mulanya menyamakan pengaturcaraan tak segerak dengan multi -thread, memikirkan bahawa mereka adalah pertukaran yang memperuntukkan tugas kepada pelbagai pemproses. Walau bagaimanapun, jika anda belajar dengan teliti, anda akan mendapati bahawa terdapat perbezaan yang sedikit tetapi penting antara kedua -duanya.
Kaedah Asynchronous: Tidak Berkaitan dengan Konteks
Reka bentuk kaedah asynchronous digunakan untuk operasi bukan blok. Ekspresi "Menunggu" tidak akan menghentikan benang semasa semasa pelaksanaan tugas. Sebaliknya, ia mencatatkan kaedah yang selebihnya sebagai kesinambungan dan mengembalikan kawalan kepada pemanggil kaedah tak segerak. Menarik, kaedah tak segerak tidak perlu membuat benang tambahan. Kaedah asynchronous tidak memerlukan pelbagai benang kerana ia berjalan dalam konteks penyegerakan semasa dan hanya menggunakan masa benang semasa aktiviti. Walaupun "Task.run" dapat menyahpasang kerja padat CPU ke benang latar belakang, ia tidak sah ketika menunggu hasilnya.
multi -threaded: multi -threaded work
Sebaliknya, multi -threads melibatkan peruntukan tugas antara pelbagai benang, dan setiap benang mempunyai pemproses khasnya sendiri. Tugas pemprosesan asynchronous, sementara benang memberi tumpuan kepada benang kerja untuk tugas -tugas ini.
Aktiviti: Sarapan Asynchronous
Bayangkan membuat sarapan pagi:
segerak: goreng telur terlebih dahulu, dan kemudian bakar roti.
Thread Single Asynchronous:
Mula telur goreng dan tetapkan pemasa. Mulakan bakar roti dan tetapkan pemasa. Semasa memasak, bersihkan dapur. Selepas pemasa cincin loceng, keluarkan makanan dan makan dari api.Meningkatkan pemahaman alur kerja
Kunci proses kerja ini adalah untuk memahami cara "menunggu":
Pada dasarnya, pengaturcaraan tak segerak membolehkan anda melaksanakan tugas secara serentak tanpa menyekat atau membuat benang tambahan. Ia adalah alat yang berkuasa untuk mengoptimumkan prestasi dan mengekalkan keupayaan tindak balas.
Atas ialah kandungan terperinci Apakah perbezaan antara pengaturcaraan asynchronous dan multithreading?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!