Java,在PriorityQueue对象的实现中,使用Heap。 在执行poll()操作(例如,通过另一个线程)后,实现(通过Java)是否与“heapify”操作并行?
提前致谢。
答案 0 :(得分:3)
答案 1 :(得分:1)
不,它不会对它进行并行化。该算法不是那样设计的。
另外,考虑到这一点,因为你必须等待整个操作完成,所以如果计算机只需要等待的重要代码块(例如检索一个代码块),你就只能从多线程中获得优势。网页)。由于堆显然不是这种情况,因此没有任何好处。
还有一件事:无论何时包含多线程,都需要付出代价:维护变得更加复杂,在线程实例化和锁定管理等方面花费了CPU时间......
在这种情况下,它无济于事。另一个问题是,如果您希望数据结构需要跨多台计算机分布式工作,在这种情况下,必须开发分布式变体,但前提是并行化有利于分配数据所涉及的开销。 / p>