我正在尝试将检测添加到我的代码中,该代码将打印出类似
的内容'线程1分叉线程2'
关于如何实现这一目标的任何建议?
答案 0 :(得分:1)
术语更正:一个线程可以创建另一个线程,而不是 fork ,这通常是 曾经提到一个过程分叉另一个。
不,线程无法获取另一个线程的标识符。在Linux上,您可以检查是否gettid() == getpid()
以查找它是否是主线程。 Solaris有thr_main()来识别调用者是否是主线程。 FreeBSD有pthread_main_np()用于同一目的。
但是没有办法确定任何线程之间的父子关系。任何线程都可以创建更多线程。您必须在创建线程时使用传递线程标识符或使用全局数据结构来维护此信息。