zoukankan      html  css  js  c++  java
  • 设置线程名字

    vs2010   https://msdn.microsoft.com/en-us/library/xcb2z8hs(v=vs.100).aspx

     1 const DWORD MS_VC_EXCEPTION=0x406D1388;
     2 
     3 #pragma pack(push,8)
     4 typedef struct tagTHREADNAME_INFO
     5 {
     6     DWORD dwType; // Must be 0x1000.
     7     LPCSTR szName; // Pointer to name (in user addr space).
     8     DWORD dwThreadID; // Thread ID (-1=caller thread).
     9     DWORD dwFlags; // Reserved for future use, must be zero.
    10 } THREADNAME_INFO;
    11 #pragma pack(pop)
    12 
    13 void SetCurrentThreadName(const char* threadName)
    14 {
    15     THREADNAME_INFO info;
    16     info.dwType = 0x1000;
    17     info.szName = threadName;
    18     info.dwThreadID = -1;
    19     info.dwFlags = 0;
    20 
    21     __try
    22     {
    23         RaiseException( MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info );
    24     }
    25     __except(EXCEPTION_EXECUTE_HANDLER)
    26     {
    27     }
    28 }

    linux  https://github.com/apache/trafficserver/blob/f9a6930fca6ea458615fa7fef6b7e67c472701ed/lib/ts/ink_thread.h

     1 // This define is from Linux's <sys/prctl.h> and is most likely very
     2 // Linux specific... Feel free to add support for other platforms
     3 // that has a feature to give a thread specific name / tag.
     4 static inline void
     5 ink_set_thread_name(const char *name ATS_UNUSED)
     6 {
     7 #if defined(HAVE_PTHREAD_SETNAME_NP_1)
     8   pthread_setname_np(name);
     9 #elif defined(HAVE_PTHREAD_SETNAME_NP_2)
    10   pthread_setname_np(pthread_self(), name);
    11 #elif defined(HAVE_PTHREAD_SET_NAME_NP_2)
    12   pthread_set_name_np(pthread_self(), name);
    13 #elif defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_NAME)
    14   prctl(PR_SET_NAME, name, 0, 0, 0);
    15 #endif
    16 }
  • 相关阅读:
    汇编 if else
    汇编  cdecl 函数调用约定,stdcall 函数调用约定
    汇编 push ,pop指令
    汇编 EBP ,ESP 寄存器
    汇编 sub减法指令 比较指令CMP JZ条件跳转指令
    thrift使用案例
    基于hiredis,redis C客户端封装
    golang 3des/ecb/cbc/pkcs5 加解密
    ortp 发送RTP实例
    go:基于时间轮定时器方案
  • 原文地址:https://www.cnblogs.com/youngt/p/5311650.html
Copyright © 2011-2022 走看看