求教如何判断是否该释放线程
有个问题请教下:在做网页搜索,用户输入一个url,我要查询这个url中包含的超链接,然后继续扫描(本站点内才扫描):现设计两个队列:预备队列和完成扫描数组(采用哈希的方式来建立索引,快速匹配);预备队列为加入的url(加入前要查询预备队列和完成数组,避免重复扫描),完成数组为已经扫描过的url。设计一个信号量,来表示预备队列的资源数,创建20个线程,等待这个信号量。现在有个问题:怎么来判断扫描已经结束,释放所有线程!
我原先的做法是设计三个队列,预备队列,正在扫描队列,完成队列;线程函数做一个while循环,当预备队列和扫描队列同时为空时,跳出循环,可是经理说要不断遍历队列,没有哈希快,添加删除效率慢,否决了,他设计了上述模式,让我找找路子