A priority queue which allows efficient priority update?
UPDATE : Here's my implementation of Hashed Timing Wheels . Please let me know if you have an idea to improve the performance and concurrency. (20-Jan-2009) // Sample usage: public static void main(String[] args) throws Exception { Timer timer = new HashedWheelTimer(); for (int i = 0; i < 100000; i ++) { timer.newTimeout(new TimerTask() { public void run(Timeout timeout) throws Exception { // Extend another second. timeout.extend(); } }, 1000, TimeUnit.MILLISECONDS); } } UPDATE : I solved this problem by using Hierarchical and Hashed Timing Wheels . (19-Jan-2009) I'm trying to implement a