Tee*_*ppa 13 iphone macos pthreads
有没有办法获得当前正在运行的线程的任何类型的线程标识符,而无需求助于Objective-C的NSThread.
我正在改进我们的自定义调试跟踪系统,以正确处理多个线程.对于每行跟踪输出,我想打印一个线程ID或一个线程名称.线程以各种方式实例化,例如使用NSOperationQueue和pthread函数.
我目前有以下两种选择,但我对其中任何一种都不满意.还有其他选择吗?
pthread_t选项
pthread_t
似乎是特定平台的typedef _opaque_pthread_h
.现在可以使用字段_opaque_pthread_h
,即使它是hack-y而且不可移植.它有一个__sig
long类型的字段,但是对于我的进程的所有线程,它似乎具有相同的值.
NSThread选项
[NSThread name]
需要NSAutoreleasePool
在适当的位置,但我不希望这是一个要求,因为我们的大多数代码都是纯C++,所以在没有自动释放池包装的情况下启动c ++函数会很好.
Tee*_*ppa 23
我发现了一种足以获得跟踪输出的唯一标识符的方法.
pthread_mach_thread_np
可以用来获取线程标识符,iPhone上的unsigned int.
mach_port_t tid = pthread_mach_thread_np(pthread_self());
Run Code Online (Sandbox Code Playgroud)
显然,这是在NSLog输出中使用的相同线程ID.
归档时间: |
|
查看次数: |
11935 次 |
最近记录: |