对不起本周洪水这么多问题。C++ boost线程ID和Singleton
我假设thread.get_id
返回的线程索引是特定于实现的。 在pthreads的情况下,索引是否重用? IE,如果线程0运行并且加入,线程启动后缀会有不同的ID?
我问这个问题的原因是需要实现一个带有扭曲的Singleton模式:每个线程都有自己的实例。我知道这听起来很疯狂,但是线程控制硬件(cuda),即使在线程级别,它也不允许设备内存共享。
什么是实现这种模式的好方法?
对不起本周洪水这么多问题。C++ boost线程ID和Singleton
我假设thread.get_id
返回的线程索引是特定于实现的。 在pthreads的情况下,索引是否重用? IE,如果线程0运行并且加入,线程启动后缀会有不同的ID?
我问这个问题的原因是需要实现一个带有扭曲的Singleton模式:每个线程都有自己的实例。我知道这听起来很疯狂,但是线程控制硬件(cuda),即使在线程级别,它也不允许设备内存共享。
什么是实现这种模式的好方法?
对于每个线程都有自己的实例的全局(单例),请使用线程本地存储。 Boost有thread_specific_ptr这个。
啊,很好。正是我想要的 – Anycorn 2010-04-18 20:14:55
你不能使用TLS的单身数据? – 2010-04-18 20:11:23
@neil我不知道TLS是什么。编辑:从来没有,线程本地存储 – Anycorn 2010-04-18 20:12:25
TLS ==线程本地存储 - 属于特定线程的内存 – 2010-04-18 20:14:55