C ++ увеличить идентификатор потока и синглтон - PullRequest
4 голосов
/ 19 апреля 2010

Извините, что за неделю задал столько вопросов.

Я предполагаю, что индекс потока, возвращаемый thread.get_id, зависит от реализации. В случае pthreads, индекс используется повторно? IE, если поток 0 запускается и присоединяется, запускается ли поток после слов, которые будут иметь другой идентификатор?

причина, по которой я спрашиваю об этом, заключается в необходимости реализации шаблона Singleton с поворотом: каждый поток получает свой собственный экземпляр. Я знаю, это звучит очень странно, но потоки управляют аппаратным обеспечением (cuda), которое не позволяет разделять память устройства даже на уровне потоков.
Какой хороший способ реализовать такой шаблон?

1 Ответ

5 голосов
/ 19 апреля 2010

Для глобального (singleton), где каждый поток получает свой собственный экземпляр, используйте локальное хранилище потока. Для этого в Boost thread_specific_ptr .

...