
On Saturday, 12 July 2014 11:10 AM, "boost-users-owner@lists.boost.org" <boost-users-owner@lists.boost.org> wrote: ----- Forwarded Message ----- To post messages to the Boost Users mailing list, you will need to subscribe this e-mail address via the Boost mailing list web page at: http://lists.boost.org/mailman/listinfo.cgi/boost-users You will need to take this step even if you intend to post only through GMane or some other news gateway. In this case, you may wish to edit your subscription options to turn off mail delivery. On Friday, 11 July 2014 11:00 PM, imran sheikh <s.imran0508@yahoo.com> wrote: hi all, i am using boost::asio:: ioservice for the multi-threading in c++. i got stuck ...please see and help. code is like this, discription:
i am creating threadpool using ioservice. creating threads 100. in while (which is 5 times)loop at a time i want to post(posting at do work) 5 threads.
then i do work reset and like this.. i print thread-id also
problems::
threadpool size is 100. but at a posting time it didn't taking the 5 threads..when i printed a id its same for 5 thread so its not executing in parallel..why? i want to post five threads at a time(different threads means thread id is different must)..from threapool..and like this for whole while loop rotation..??????????????????????????
void dowork(int i) { std::cout<<"hello"<<std::endl; cout<<" thread ID :"<<boost::this_thread::get_id(); } int main() { int ch; int i; boost::asio::io_service ioservice; boost::thread_group threadpool; auto_ptr<boost::asio::io_service::work> work(new boost::asio::io_service::work(ioservice)); for(i=0;i<100;i++) { threadpool.create_thread( boost::bind(&boost::asio::io_service::run, &ioservice)); } ch=0; while(ch <= 5) { ch++; cout<<"in main"<<boost::this_thread::get_id()<<endl; for(i=0;i<5;i++) { ioservice.post(boost::bind(dowork,10)); } std::cout<<"size="<<threadpool.size()<<std::endl; work.reset(); ioservice.reset(); ioservice.run(); } } please give me suggestion.i got stuck with it.