Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah perbezaan antara multi-process dan multi-threading dalam linux

Apakah perbezaan antara multi-process dan multi-threading dalam linux

青灯夜游
青灯夜游asal
2022-01-11 17:32:036023semak imbas

Perbezaan: 1. Perkongsian data dalam berbilang proses adalah kompleks dan penyegerakan adalah mudah, manakala perkongsian data dalam berbilang benang adalah mudah dan penyegerakan adalah kompleks 2. Pelbagai proses menduduki banyak memori, pensuisan kompleks, perlahan kelajuan, dan penggunaan CPU yang rendah menggunakan lebih sedikit memori, mudah untuk bertukar, dan mempunyai penggunaan CPU yang tinggi 3. Pengaturcaraan berbilang proses adalah mudah dan penyahpepijatan adalah mudah, manakala multi-threading adalah rumit untuk program dan nyahpepijat.

Apakah perbezaan antara multi-process dan multi-threading dalam linux

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.

Perbezaan antara multi-proses dan multi-threading dalam linux

Proses : berjalan ( dimuatkan ke dalam ingatan ) prosedur. -->Proses pelaksanaan dipanggil proses.

Benang: Benang ialah proses yang ringan, urutan pelaksanaan (satu set arahan tersusun) dalam proses dan proses mempunyai sekurang-kurangnya satu urutan.

Jujukan pelaksanaan yang diwakili oleh fungsi utama dipanggil utas utama. Benang yang dibuat melalui perpustakaan benang dipanggil benang fungsi.

Penciptaan dan pemusnahan, penukaran rumit, kelajuan perlahanPengaturcaraan mudah, penyahpepijatan mudah tr>
对比维度 多进程 多线程 总结
数据共享,同步

数据共享复杂,需要用IPC;

数据是分开的,同步简单

因为共享进程数据,共享数据简单,同时导致同步也复杂 各有优势
内存、CPU 占用内存多,切换复杂,速度慢,CPU利用率低 占用内存少,切换简单CPU利用率高 多线程优势
创建销毁、切换 创建销毁,切换复杂,速度慢 创建销毁,切换简单,速度很快 多线程优势
编程调试 编程简单,调试简单 编程复杂,调试复杂 多进程优势
可靠性 进程间不会互相影响 一个线程挂掉将导致整个进程挂掉 多进程优势
分布式 适用于多核、多机分布式;如果一台机器不够,拓展到多台机器比较简单 适用于多核分布式 多进程优势
Dimensi kontras
Berbilang proses Multi-threading Ringkasan
Perkongsian data, penyegerakan Perkongsian data adalah rumit dan memerlukan IPC; Perkongsian data data adalah Asing, penyegerakan adalah mudah Oleh kerana data proses dikongsi, perkongsian data adalah mudah, tetapi penyegerakan juga rumitSetiap satu mempunyai kelebihan tersendiri
Memori, CPU Menduduki banyak memori, pensuisan kompleks, kelajuan perlahan, penggunaan CPU yang rendah Menduduki sedikit memori , penukaran mudah, penggunaan CPU yang tinggi Kelebihan berbilang benang
Penciptaan, pemusnahan, penukaran Penciptaan dan pemusnahan, penukaran mudah, kelajuan pantas Kelebihan berbilang benang
Pengaturcaraan dan penyahpepijatanPengaturcaraan kompleks, kompleks penyahpepijatan Kelebihan berbilang proses
Kebolehpercayaan Proses tidak akan menjejaskan satu sama lain Jika satu utas ditutup, keseluruhan proses akan ditutup Kelebihan berbilang proses
Diedarkan Terpakai kepadaberbilang teras, mesin berbilangdiedarkan; jika satu mesin tidak mencukupi, kembangkan kepada Berbilang mesin agak mudah Sesuai untukBerbilang terasDiedarkan Kelebihan berbilang proses

Kelebihan multi-threading:

  • Tidak perlu melepasi sempadan proses;

  • Logik program yang mudah dan kaedah kawalan;

  • Semua utas boleh berkongsi memori dan pembolehubah secara langsung;

  • Kelebihan pelbagai proses

    :

Setiap proses adalah bebas antara satu sama lain dan tidak menjejaskan kestabilan program utama tidak kira jika proses kanak-kanak mengalami ranap; dan sangat meningkatkan prestasi;

  • Kelemahan berbilang benang

    :

  • Setiap rangkaian berkongsi ruang alamat dengan utama program dan saiznya terhad;

  • Penyegerakan dan penguncian antara utas menyusahkan; keseluruhan program;

Selepas mencapai bilangan utas tertentu, prestasi tidak boleh dipertingkatkan walaupun CPU ditingkatkan

  • Kelemahan; daripada pelbagai proses:

  • Kawalan logik adalah kompleks dan perlu berinteraksi dengan program utama; sempadan proses dan tidak sesuai jika terdapat penghantaran data yang besar; situasi adalah seperti berikut:

  • 1) Perlu membuat dan memusnahkan dengan kerap Gunakan benang
  • Prinsip ini paling biasa dalam pelayan web . Benang dibuat apabila sambungan dibuat, dan benang dimusnahkan apabila ia diputuskan. Jika anda menggunakan proses, kos penciptaan dan kemusnahan sangat sukar untuk ditanggung.

2) Utamakan benang yang perlu melakukan sejumlah besar pengiraan

  • Apa yang dipanggil jumlah pengiraan yang besar bermakna memakan banyak CPU dan bertukar dengan kerap Dalam kes ini, benang adalah yang paling sesuai.

    Prinsip ini paling biasa digunakan dalam pemprosesan imej dan pemprosesan algoritma.
  • 3) Benang digunakan untuk pemprosesan korelasi kuat, dan proses digunakan untuk pemprosesan korelasi lemah
  • Apakah korelasi kuat dan korelasi lemah? Secara teorinya sangat sukar Sukar untuk ditakrifkan, berikan satu contoh untuk dijelaskan.
Pelayan umum perlu menyelesaikan tugas berikut: penghantaran dan penerimaan mesej, pemprosesan mesej. "Penghantaran dan penerimaan mesej" dan "pemprosesan mesej" adalah proses yang berkaitan dengan lemah, dan "pemprosesan mesej" dibahagikan kepada "penyahkodan mesej" dan "pemprosesan perniagaan ini secara relatifnya lebih kukuh". Oleh itu, "penghantaran dan penerimaan mesej" dan "pemprosesan mesej" boleh direka bentuk dalam proses berasingan, dan "penyahkodan mesej" dan "pemprosesan perniagaan" boleh direka bentuk dalam urutan yang berasingan.

4) Ia boleh diperluaskan kepada proses pengguna teragih berbilang mesin dan urutan pengguna teragih berbilang teras

(sila lihat jadual di atas atas sebab tertentu)

Penggunaan sumber:

Dari perspektif kernel, tujuan proses adalah untuk berfungsi sebagai unit asas untuk memperuntukkan sumber sistem ( masa CPU, ingatan, dll.). Benang ialah aliran pelaksanaan proses dan unit asas penjadualan dan penghantaran CPU Ia adalah unit asas yang lebih kecil daripada proses dan boleh berjalan secara bebas. Benang menggunakan ruang alamat yang sama dan berkongsi kebanyakan data Ruang yang diambil untuk memulakan utas adalah jauh lebih sedikit daripada ruang yang diambil untuk memulakan proses, dan masa yang diperlukan untuk bertukar antara utas juga Jauh lebih sedikit. daripada masa yang dihabiskan untuk bertukar antara proses.

Kaedah komunikasi:

Data hanya boleh dipindahkan antara proses melalui komunikasi, yang memakan masa dan menyusahkan. Kebanyakan data masa benang dikongsi, yang pantas dan mudah, tetapi penyegerakan data memerlukan kunci.

Kelebihan benang sendiri:

Meningkatkan tindak balas aplikasi dengan lebih berkesan

Sistem pengendalian akan memastikan bahawa apabila nombor benang tidak mencukupi Apabila bilangan CPU lebih besar daripada bilangan CPU, benang berbeza dijalankan pada CPU berbeza untuk menambah baik struktur program, proses yang panjang dan kompleks boleh dibahagikan kepada berbilang benang dan menjadi beberapa bebas atau separuh -bahagian bebas. Program sedemikian akan mudah difahami dan diubah suai. Cadangan berkaitan: "Tutorial Video Linux

"

Atas ialah kandungan terperinci Apakah perbezaan antara multi-process dan multi-threading dalam linux. 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