Please answer this first:
when use multithread, we must call start() for all threads, after that we must call wait() for all threads so that they finished before we call any commands after? Please view my tree:
Qt Code:
  1. thread1.start();
  2. thread2.start();
  3. // ...
  4. threadn.start();
  5.  
  6. thead1.wait();
  7. thead1.wait();
  8. // ...
  9. theadn.wait();
  10. // you code after threads finished. At here, all threads finished?
To copy to clipboard, switch view to plain text mode 
This's right?

As you say, in Coin, we should use thread or not? My machine is multiprocessor.
Please answer that question.
Because, my program is 3D, have a lot trucks to draw (>1000), so I use object Truck as a thread to draw.
As you know, in Coin, I declare a variable SoSeparator *_root;
with each Truck, I call _root->addChild(truck->draw()).
After that, I need all of truck finish drawing to _root contain all nodes from trucks.
And call _examinerviewer->setSceneGraph(_root);
But because of truck is a thread, If I initialize 1000 Trucks to draw; there are some trucks not finish before call setSceneGraph.
Can you make a suggestion for my program? Thanks alot.