2009-03-12 20 views
4

Javaのスレッドプール&優先キューを使用してスケジューラを実装しようとしています。誰も既存の実装を知っているかどうかを尋ねたいので、私はそれに費やす時間がありません: - )...スレッドプールと優先度キューを使用するスケジューラ?

基本的に、java.util.concurrentパッケージのScheduledThreadPoolExecutorは、「優先キュー」以外のほとんどの機能を提供します。私は大まかに組み込みのJavaライブラリをチェックした結果、優先順位キューが見つかりませんでした。これは、&がキューに置かれた後に要素の "優先度"値を更新することを修正することをサポートしています。

このような優先キューは、ダウンローダが好きなプロジェクトで使用するために必要です。私はユーザーが各ダウンロードの優先度をオンザフライで変更できるようにしたいし、キュー内のその位置は自動的に更新されます。 PriorityQueueは正しい優先度を得るためにこのように実装されていません。削除する必要がある優先度値を変更するたびに&を送信してください。

誰でもこれを前に実行しましたか?

答えて

4

PriorityQueueまたはPriorityBlockingQueueを確認できます。私はそれらのいずれかが優先順位を変更することを許可しないと思います。しかし、いつでも要素を削除し、変更された優先度で要素を追加することができます。

0

あなたはQuartzを使用することができ、それは完全に機能スケジューラであるとpriorities

+0

をサポートしていますはい、私はクォーツを知っているが、私はほんの少しの機能のための私のディストリビューションでの大きな男を運ぶためにしたくありません。さらに、Quartzは「優先度」の更新をサポートしていないため、問題は残っています... ScheduledThreadPoolExecutorがサポートするものを使用して時間を節約する必要があります.-) – instcode