关于Linux多线程的一个疑惑,该怎么解决

关于Linux多线程的一个疑惑
最近做的东西里用到Linux下的多线程,有一个相当诡异的问题。 
现在有一个主线程,在主线程里启动两个新线程。 
当我重启系统第一次运行这个程序时,两个线程能够依次运行,但是当我关闭后再运行,诡异的问题出现了,第一个线程必须等到第二个线程开始运行才会运行下去,不然就卡到一个地方过不去,很是诡异,不知道到底是什么问题,有人能解答吗?
注:第一个线程是开启agentX的subagent线程的,
  SubAgentXMib *mib = new SubAgentXMib();

  AgentXSlave *agentx = new AgentXSlave();

  AgentXRequestList *reqList = new AgentXRequestList(agentx);
  mib->set_request_list(reqList);//register requestList for outgoing requests

  init(*mib);

  if (!mib->init()) {
perror("Register MIB Error");
pthread_exit((void *)"Subagent Thread finish!");
  }
就在mib->init()这里卡住了,实在搞不清怎么回事?

------解决方案--------------------
mib->init()的代码贴出来看看
------解决方案--------------------
pgrep 执行文件名
看看是不是都正常结束了
如果没有 pkill下

LZ不防试下
没准没有正常退出