Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Bagaimana untuk menentukan sama ada benang wujud dalam Linux
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)".
Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.
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.
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!