Thank you all very much and sorry for anything wrong i have done :( . ok talking about threads ,how can i query a thread object to see if it points to a valid thread of execution ? will just comparing it with null! do it ? i mean specially after using join() or detach() on them ( i dont know if that was necessary!) question two : when i detach a thread, do i really loose it for good ? cant i have any access of any kind to it ? any kind of management ? checking it ? suppose my detached thread was to run a function named "somefunc()", will i access the thread in there ? i mean can i have any kind of management in that thread ? by management i mean get its id for example in case to differentiate it from other possible detached! or joined? threads running that specific function , and possibly do sth to the share resource that detached thread of mine were to work on , or simply change the owner ( for example create a new thread, move the ownership form the detached one to his new one , and then make it joinable !, may be this doesnt make sense , i just want to know if these kind of stuff are do able ) how detached threads of any use ? do i have to immediately write thread.join() in order for my thread to join with the main thread ? or i can do it at any place in my source code ? what about detaching it ? does it make any difference? do we have any means in pausing /resuming a thread ? rather than using the e.g windows api ? i mean suppose i have a thread thats done 90% of its work and suddenly and event is triggered and for some unknown duration , it needs to get paused , and then when the criteria is met , get resumed again , i cant simply delete that thread, because maybe it has done so much calculation on and its not a wise action to through everything and start over ! again because time is not specific , cant use sleep to block it for some time , so how should we do it ? is there a sample showing the use of sharedmemory with threading ? i already checked the interprocess section , there were two simple samples which didnt have any threading in it ! how would i want to use pointers in a multi threaded application ? i mean do i even need one of those smart pointers ? if i do, would you name some of scenarios that might need the use of smart pointers? i would be grateful again thank you :)