Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我相信不存在便携式解决方案。在 linux 上,我们查看 /proc//task/,在 darwin 上我们使用 task_threads()。FreeBSD 怎么样?
似乎 kvm_getprocs 是答案。
melisgl 是正确的——但前提是您使用的是默认线程实现,其中进程的线程是“内核可见的”。(还有其他实现,例如 pth,这可能不是真的。)
使用 KERN_PROC_PID|KERN_PROC_INC_THREAD(未经测试)使用 kvm_getprocs() 计算进程的内核可见线程。但是使用该功能可能需要root权限:(