C++ 使用pThreads,是否可以编写一个函数来检测它所使用的线程';他是从哪里打来的?

C++ 使用pThreads,是否可以编写一个函数来检测它所使用的线程';他是从哪里打来的?,c++,c,multithreading,pthreads,C++,C,Multithreading,Pthreads,以下是使用案例: Log(char* s); // prints out a log message 现在: 期望输出: Thread1: hello world Thread2: hello world 现在: 期望输出: Thread1: hello world Thread2: hello world 我可以有一个将线程PID映射到字符串的映射。然而,我需要的是一个函数,当从不同线程调用时,它会给我唯一的标识标签。这可能吗 谢谢 (Langauge:C/C++)您需要将pthre

以下是使用案例:

Log(char* s); // prints out a log message
现在:

期望输出:

Thread1: hello world
Thread2: hello world
现在:

期望输出:

Thread1: hello world
Thread2: hello world
我可以有一个将线程PID映射到字符串的映射。然而,我需要的是一个函数,当从不同线程调用时,它会给我唯一的标识标签。这可能吗

谢谢


(Langauge:C/C++)

您需要将
pthread\u self()
传递到Log()函数中(或编写宏)

您需要将
pthread\u self()
传递到Log()函数中(或编写宏)

一种干净的方法是为线程名创建一个线程属性(使用pthread_attr_*),在每个线程中设置该属性,然后在log函数中读取该属性


您还可以在日志函数中使用pthread_self。

一种干净的方法是为线程名创建一个线程属性(使用pthread_attr_*),在每个线程中设置该属性,然后在日志函数中读取它


您也可以在日志函数中使用pthread_self。

主题错误,您需要的是当前线程,而不是调用方函数。主题错误,您需要的是当前线程,而不是调用方函数。这个答案毫无意义。不能创建附加字符串的任意自定义属性。这个答案毫无意义。无法创建附加字符串的任意自定义属性。另一种方法是
&errno
。这可以移植到所有sane线程系统,而不仅仅是POSIX线程。另一种方法是
&errno
。这可以移植到所有sane线程系统,而不仅仅是POSIX线程。