fix bug.

in MultiThreadTestRunner, if we don't use mutex,
then sometimes there is a chance that the pointer
has been deleted.
use boost lock free queue instead.