Thank you very much :)
for keeping track of my created threads i decided to use thread_groups and
accumulate them there . i came up with sth like this :
boost::thread_group threadstore;
threadstore.add_thread(&thread);
threadstore.add_thread(&thread2);
BOOST_FOREACH(boost::thread t ,threadstore.threads)
{
cout<
Le 11/04/12 13:31, Master a écrit :
Hello all . i am a newbie to the boost community . i recently started learning about threads in boost . now there are some questions i would like to ask :
Welcome.
1.where can i find examples showing practical uses of boost::thread features?
The documentation doesn't contains too much examples. You can take a look at the libs/thread/example and tutorial directories :(
2.how can i get all threads ID issued by me in my app?
No direct way other that storing them in a container. What is your use case?
3.how can i iterate through running threads in my app ?
No direct way other than storing a thread pointer in a container. What is your use case?
4.is there any kind of means to get all the running threads using boost library? if it does whats the calss? if it doesnt how can i do that?
See above. I think that you need to specialize the thread class so that it inserts a handle to the created thread on a container at construction time and remove it at destruction time.
5.can i resume a thread after pausing it ? ( how can i pause a thread? )
Boost.Thread doesn't provide fibers or resumable threads. There is Boost.Fiber for that purpose (not yet in Boost).
6. how can i share a variable between two or more threads , suppose i have a loop , i want two threads to simultaneously iterate through it , if thread1 counted to 3, thread2 continues it from 4 and so on . ? i already tried
You need to protect the access to the loop index variable 'i' with a mutex as you did with sum.
HTH, Vicente
------
what is wrong with my sample app ? #include <iostream> #include
using namespace std; using namespace boost; mutex bmutex; int i=0; int sum=0; void IteratorFunc(int threadid) { for ( ; i<25 ; i++) { lock_guard<mutex> locker(bmutex);
cout<<"\t"<
int main() { //boost::posix_time::ptime start = boost::posix_time::microsec_clock::local_time();
thread thrd(IteratorFunc,1); thread thrd2(IteratorFunc,2);
cout<
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users