Hi, Could you please explain for beginner in thread-related business, how the thread is identified from itself? Can the program, that it the given thread, obtain its own number or an index of itself? I assume that there should be some enumeration such as numbering the main program by 0, next child thread by 1, etc.? And, in particular, is this number available from boost thread library? THanks in advance Igor
On Tuesday 11 December 2007 17:03, Igor wrote:
Hi,
Could you please explain for beginner in thread-related business, how the thread is identified from itself? Can the program, that it the given thread, obtain its own number or an index of itself? I assume that there should be some enumeration such as numbering the main program by 0, next child thread by 1, etc.? And, in particular, is this number available from boost thread library?
See the default constructor for the boost::thread class. -- Frank
Igor
Could you please explain for beginner in thread-related business, how the thread is identified from itself? Can the program, that it the given thread, obtain its own number or an index of itself? I assume that there should be some enumeration such as numbering the main program by 0, next child thread by 1, etc.? And, in particular, is this number available from boost thread library?
Igor, As far as I know, boost::thread does not provide any mechanism for this. However, you can use OS-specific system calls to get this information. For example, on my Unix system I use pthread_self() to get a thread ID. boost::threads are very portable and so implement only the functionality that can be provided identically on all platforms. That's their greatest strength and their greatest weakness. Good luck! ----Scott.
There are 2 ways of identifying a thread. If you create a thread, you can
path in the function object any members you like. It is also possible to
pass some id (in case you create threads, you can assign them ids). Another
way of identifying a thread, is doing so by its local storage. A pointer to
a thread local storage will be different for each thread ;)
Regards,
Ovanes
On Dec 12, 2007 7:56 PM, Scott Gifford
Igor
writes: Could you please explain for beginner in thread-related business, how the thread is identified from itself? Can the program, that it the given thread, obtain its own number or an index of itself? I assume that there should be some enumeration such as numbering the main program by 0, next child thread by 1, etc.? And, in particular, is this number available from boost thread library?
Igor,
As far as I know, boost::thread does not provide any mechanism for this. However, you can use OS-specific system calls to get this information. For example, on my Unix system I use pthread_self() to get a thread ID.
boost::threads are very portable and so implement only the functionality that can be provided identically on all platforms. That's their greatest strength and their greatest weakness.
Good luck!
----Scott. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (4)
-
Frank Mori Hess
-
Igor
-
Ovanes Markarian
-
Scott Gifford