0

いくつかのテキスト ファイルを検証しようとしています。フロントエンドでは JTextarea を使用しています。ユーザーが「Enter」キーを入力するたびに、以下のメソッドが呼び出されます。ファイルが大きすぎる場合、たとえば 5000 行で、ユーザーが何度も「Enter」キーを入力すると、行が有効であっても無効として表示されるなど、予期しない結果が得られます。

睡眠と何か関係がありますか、睡眠時間を増やす必要がありますか、それとも何か他のことをしなければなりませんか? どんなアイデアも役に立ちます

private TreeSet validate(int curLine, TreeSet errorSet) {
    int increment = 0;
    int nextLine = 0;

    if (curLine == lines.length || errorSet.size() != 0) {
        return errorSet;
    } else {
        String line = lines[curLine];

        //validation starts.  After validation, line is incremented as per the requirements

         increment = 1 //As per requirement. Depends on validation results of the line



        if (increment > 0) {
            try{
                 Thread.currentThread().sleep(100);  
               }catch(Exception ex){
                 System.out.println(ex); 
               }
            nextLine = (curLine + increment);
            validate(nextLine, errorSet);
        }
    }
    return errorSet;
}  
4

1 に答える 1

1

睡眠時間をこれ以上長くしたり短くしたりすることは考えていません。代わりに、トリガーをマーシャリングして検証することを検討します。進行中の検証リクエストの入力を許可する理由はありますか? そうでない場合は、現在のプロセスがまだ完了していない間に検証の呼び出しをブロックすることを検討します。

複数の検証を並行して行うことができると思われる場合は、これらのアクション用のスレッド プールの作成を検討します。テストにより、同時に実行できるスレッドの数が決定され、スレッドプールのサイズが決定されます。この時点で、システム メモリも重要なポイントになる可能性があるため、テスト中にこれらの統計情報を確認することもできます。

于 2012-07-29T07:31:27.747 に答える