私はマルチスレッドアプリケーションのために働いていますので、グローバルArrayList変数を1つ持つスレッドがあり、データベースから値のリストをフェッチしてその変数に割り当てています。私はどのくらいのリストをフェッチする必要があります100に制限しています。バックエンドで私は休止状態を使用しています。Javaのスレッド内の変数のメインテナンス値
私はこのスレッドをバックグラウンドで定期的に実行していましたが、このスレッドが実行されるたびに次の100個のアイテムのリストを取得します。また、私は静的を使用したくないし、データベースでそれを維持したくない、私はフェッチする方法を教えてくれるカウンタを維持する方法を混乱させる次の100項目を取得する。誰でも助けることができる、どのように私はこれを達成することができますか?以下は私のコードサンプルです
public class DemoThread implements Runnable {
private ArrayList <<>> samplePojoList = null;
@Override
public void run() {
MyDaoClass dao = null;
try {
// this dao method fetching list of 100 results from database,
// for each iteration i want to fetch next 100 result from
// database
samplePojoList = dao.getSampleList();
} catch (Exception e) {}
}
}
私はあなたが静的使用したくない知っているが、なぜ単に同期getInstanceメソッドでシングルトンを作ってみませんか? – inafalcao
@inafalcao。 NO。シングルトンには多くの問題があり、関連する同期は困難です。通常、コンストラクタにパラメータを追加し、関連するものを渡す方がずっと優れています。 –
質問 - あなたのスレッドが終了し、それからあなたはそれを再提出しますか?それは継続的に実行されていませんか?カーソルを使って何かをやっていない限り、どこかで変数を渡してデータベースに渡す必要があるでしょう(それはカーソルで何かをしない限り、やや異なる問題です)。パラメータもスレッドに渡します。ああ、サイドノート:データベースには、実際には「次の」または「前の」という概念自体がありません。注文するかどうかを指定する必要があります。 –