簡體   English   中英

Android Ndk - 為 C++ 線程設置名稱

[英]Android Ndk - Setting a name for a C++ thread

我正在嘗試使用 Android Profiler 分析我的代碼。 問題是命名我的 C++ 線程,我嘗試使用:

pthread_setname_np(pthread_self(), "MyThread");

但它不顯示指定的名稱。 如何在 Android 上命名我的 C++ 線程?

  1. 獲取對 JavaVM 的引用:
JavaVM* jvm;
env->GetJavaVM(&jvm);
  1. 在將線程附加到 JVM 時設置名稱:
std::thread myThread([jvm](){
  JNIEnv* myNewEnv;
  JavaVMAttachArgs args;
  args.version = JNI_VERSION_1_6;
  args.name = "Fancy Thread";
  args.group = NULL;
  jvm->AttachCurrentThread((JNIEnv**)&myNewEnv, &args);

  while(1){
   // ....
  }

});
  1. 您現在將在 Android Studio 調試器中看到正確的線程名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM