我需要访问我无法控制的线程的线程ID(它在一个异步回调函数中,可从一组不同线程中调用)。
想知道访问线程ID是否在性能方面很耗费资源?
我计划使用
需要澄清的是,当数据从我的回调函数到达时,我需要准备一些本地缓存数组,并且为避免错误和锁定,计划为每个线程使用本地缓存,并使用线程ID访问正确的缓存。 由于传入的数据大小始终不同,因此无法将其放入堆栈中,并且希望避免反复创建和删除堆数据。
想知道访问线程ID是否在性能方面很耗费资源?
我计划使用
boost::this_thread::get_id()
或GetCurrentThreadId()
来实现。需要澄清的是,当数据从我的回调函数到达时,我需要准备一些本地缓存数组,并且为避免错误和锁定,计划为每个线程使用本地缓存,并使用线程ID访问正确的缓存。 由于传入的数据大小始终不同,因此无法将其放入堆栈中,并且希望避免反复创建和删除堆数据。
boot::threads
只是 Windows 上 Win32 线程函数的一个包装器。除了可移植性之外,两者之间几乎没有什么区别。 - Will