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线程。