
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 http://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<