Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Bagaimana untuk menentukan sama ada benang wujud dalam Linux

Bagaimana untuk menentukan sama ada benang wujud dalam Linux

WBOY
WBOYasal
2022-04-06 17:03:543804semak imbas

Dalam mysql, anda boleh menggunakan fungsi "pthread_kill()" untuk menentukan sama ada utas itu wujud sintaks ialah "int pthread_kill(pthread_t thread, int sig)".

Bagaimana untuk menentukan sama ada benang wujud dalam Linux

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Bagaimana untuk menentukan sama ada benang wujud dalam Linux

pthread_kill:

Jangan takut dengan nama itu, pthread_kill bukan pembunuhan, tetapi isyarat dihantar ke benang. Ingat isyarat? Tindakan lalai kebanyakan isyarat adalah untuk menamatkan proses berjalan Oleh itu, kita perlu menggunakan signal() untuk menangkap isyarat dan menambah fungsi pemprosesan.

int pthread_kill(pthread_t thread, int sig);

Hantar isyarat sig ke utas dengan ID yang ditentukan Jika tiada pemprosesan dilakukan dalam kod utas, keseluruhan proses akan terjejas mengikut kelakuan lalai isyarat. jika anda menghantar SIGQUIT ke utas, tetapi Jika utas tidak melaksanakan fungsi pemprosesan isyarat, keseluruhan proses akan keluar.

Begitu juga dengan pthread_kill(threadid, SIGKILL), yang membunuh keseluruhan proses.

Jika anda ingin mendapatkan kelakuan yang betul, anda perlu melaksanakan isyarat(SIGKILL, sig_handler) dalam urutan.

Jadi, jika parameter int sig bukan 0, anda mesti tahu dengan tepat apa yang perlu dilakukan, dan anda mesti melaksanakan fungsi pemprosesan isyarat benang, jika tidak, ia akan menjejaskan keseluruhan proses.

OK, jika int sig ialah 0, ini adalah isyarat terpelihara, dan fungsinya adalah untuk menentukan sama ada benang itu masih hidup.

Mari kita lihat nilai pulangan pthread_kill:

  • Kejayaan: 0

  • Benang tidak wujud: ESRCH

  • Isyarat tidak sah: EINVAL

Jadi, pthread_kill(threadid,0) sangat berguna.

Bagaimana untuk menentukan sama ada benang wujud dalam Linux

Kod di atas boleh menentukan sama ada benang itu masih hidup.

Cadangan berkaitan: "Tutorial Video Linux"

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada benang wujud 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