Apakah benang dalam linux

青灯夜游
青灯夜游asal
2021-11-26 11:02:272774semak imbas

Dalam Linux, utas merujuk kepada laluan pelaksanaan dalam program, iaitu jujukan kawalan dalam proses Semua proses mempunyai sekurang-kurangnya satu urutan pelaksanaan. Thread ialah unit terkecil pelaksanaan program Thread berkongsi data proses, tetapi juga mempunyai bahagian data mereka sendiri.

Apakah benang dalam linux

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

Konsep benang Linux

Apakah benang?

  • Laluan pelaksanaan dalam atur cara dipanggil benang. Takrifan yang lebih tepat ialah: benang ialah "jujukan kawalan dalam proses."
  • Semua proses mempunyai sekurang-kurangnya satu urutan pelaksanaan.

Proses dan Benang

  • Proses ialah unit asas peruntukan sumber dan persaingan
  • Benang ialah Unit terkecil pelaksanaan program
  • Thread berkongsi data proses, tetapi juga mempunyai bahagian data mereka sendiri
  • ID Thread
  • Satu set daftar: IP, PSW, tindanan penunjuk
  • tindanan
  • errno
  • status isyarat
  • keutamaan

Linux 线程的概念和使用

Perbezaan antara fork dan mencipta utas baharu

  • Apabila proses melaksanakan panggilan fork, salinan baharu proses itu akan dibuat mempunyai pembolehubah sendiri dan PID sendiri. Masa jalan proses baharu ini adalah bebas; ia melaksanakan hampir sepenuhnya bebas daripada proses yang menciptanya.
  • Apabila mencipta urutan baharu dalam proses, proses pelaksanaan baharu akan mempunyai timbunan sendiri (dan oleh itu pembolehubah setempatnya sendiri), tetapi ia akan berkongsi pembolehubah global dan deskriptor fail dengan penciptanya , pengendali isyarat dan status direktori kerja semasa.

Kelebihan benang

  • Membuat utas baharu jauh lebih murah daripada mencipta proses baharu
  • Berbanding dengan menukar antara proses, menukar antara benang memerlukan sistem pengendalian untuk melakukan lebih sedikit kerja
  • Benang menempati sumber yang jauh lebih sedikit daripada proses
  • Gunakan sepenuhnya bilangan selari berbilang pemproses
  • Semasa menunggu penghujung operasi I/O yang perlahan, program ini boleh melaksanakan tugas pengkomputeran lain
  • Aplikasi intensif pengkomputeran, agar dapat menjalankan berbilang pemprosesan Berjalan pada pelayan sistem, pengiraan diuraikan kepada berbilang benang untuk melaksanakan
  • aplikasi intensif I/O Untuk menambah baik sistem, operasi I/O bertindih. Benang boleh menunggu operasi I/O berbeza pada masa yang sama

Kelemahan benang

  • Kehilangan prestasi
  • Urutan intensif pengiraan yang jarang disekat oleh peristiwa luaran selalunya tidak boleh berkongsi pemproses yang sama dengan utas lain. Jika bilangan utas intensif pengiraan melebihi pemproses yang tersedia, mungkin terdapat kehilangan prestasi yang besar, di mana kehilangan prestasi merujuk kepada penambahan penyegerakan tambahan dan overhed penjadualan, manakala sumber yang tersedia kekal tidak berubah.
  • Kekukuhan yang dikurangkan
  • Menulis berbilang benang memerlukan pertimbangan yang lebih komprehensif dan mendalam Dalam program berbilang benang, ralat mungkin berlaku disebabkan oleh sedikit penyelewengan dalam peruntukan masa atau perkongsian pembolehubah yang sepatutnya. tidak boleh dikongsi. Kemungkinan menimbulkan masalah adalah sangat tinggi.
  • Kekurangan kawalan akses
  • Proses ialah butiran asas kawalan akses Memanggil fungsi OS tertentu dalam urutan akan menjejaskan keseluruhan proses.
  • Kesukaran pengaturcaraan meningkat
  • Menulis dan menyahpepijat atur cara berbilang benang adalah lebih sukar daripada program berutas tunggal

Penjadualan benang julat pertandingan

  • Sistem pengendalian menyediakan pelbagai model untuk urutan penjadualan yang dicipta oleh aplikasi. Perbezaan utama masa antara model ini ialah: apabila bersaing untuk sumber sistem (terutamanya masa CPU), skop perbalahan penjadualan benang adalah berbeza
  • Skop perbalahan proses: setiap utas Bersaing untuk "masa CPU berjadual" dalam proses yang sama (tetapi tidak secara langsung dengan benang dalam proses lain).
  • Skop perbalahan sistem: Benang bersaing secara langsung dengan urutan lain dalam "skop sistem".

Cadangan berkaitan: "Tutorial Video Linux"

Atas ialah kandungan terperinci Apakah benang 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
Artikel sebelumnya:Apakah subsistem kernel linux?Artikel seterusnya:Apakah subsistem kernel linux?