我有一个线程数组,其中每个线程从线程搜索管理器获取搜索任务 - 使用生产者/消费者模块 - 当它完成时,它会等到来自搜索管理器线程的下一个信号。搜索是通过网络执行的 - 这需要大量时间(主要是获取 html 数据部分)。我的问题是当用户选择停止当前搜索并开始一组新搜索时,所有搜索在上一次网络搜索期间都很忙,所以目前,用户一直等到不再相关的搜索结束他们的任务和开始新的。
我的问题是 - 我怎样才能立即开始新的相关任务?我不能使用标志(指示线程跳过搜索),因为漫长的等待是为了获取 http 方法。有没有办法积极地停止该方法并从头开始?(我不喜欢使用新线程...)
提前致谢,
什穆尔。