GNU/Linux >> Belajar Linux >  >> Linux

Bisakah ID utas dari proses multithreaded sama dengan ID proses dari proses lain yang sedang berjalan?

Menurut halaman manual pthreads ID utas unik dalam proses pembuatan, jadi ya utas atau proses lain dapat memiliki ID yang sama. Namun, jika unik dalam suatu proses dan ID proses unik dalam sistem, mungkin Anda dapat menggunakan kombinasi keduanya sebagai pengidentifikasi unik.

Setiap utas dalam suatu proses memiliki pengidentifikasi utas unik (disimpan dalam tipe pthread_t). Pengidentifikasi ini dikembalikan ke pemanggil pthread_create(3), dan sebuah utas dapat memperoleh pengidentifikasi utasnya sendiri menggunakan pthread_self(3). ID Utas hanya dijamin unik dalam suatu proses.


TID (seperti yang dikembalikan oleh sys_gettid() panggilan sistem) unik di semua utas pada sistem, dan untuk proses utas tunggal, PID dan TID adalah sama. Artinya, TID tidak akan pernah berbenturan dengan PID dari proses lain.


Meskipun ID pthread mungkin tidak unik, dalam implementasi di mana utas dipetakan ke tugas, id tugas (seperti yang terlihat di /proc/PID/tugas) sebenarnya akan unik di seluruh sistem, dan memiliki bentuk yang mirip dengan PID yang sebenarnya.


Linux
  1. Periksa Proses Jika Sama Sedang Berjalan?

  2. Apa PID di host, dari proses yang berjalan di dalam container Docker?

  3. Bagaimana saya bisa mendapatkan waktu jam dinding dari proses yang sedang berjalan?

  1. Bagaimana Mengubah Pengalihan Output Dari Proses yang Berjalan?

  2. Bisakah proses init menjadi skrip shell di Linux?

  3. Tidak dapat menemukan .so di direktori yang sama dengan executable?

  1. Linux – Mengatur Proses Menjalankan Afinitas Dengan Taskset Gagal?

  2. Bagaimana Cara Melihat Output Dari Proses yang Berjalan Di Sesi Bash Lain?

  3. Ke mana Kode Ansi Escape Pergi Saat Saya Memindahkan Ke Proses Lain? Bisakah Saya Menjaga Mereka?