0

文字列を受け取るコールバック関数があります。この文字列は、処理に時間がかかるため、処理のために別のスレッドに渡されます。また、複数のコールバックが同時に発生する可能性があるため、文字列を新しいスレッドに渡すまで同期ロックが必要です。しかし、新しいスレッド (処理が行われている場所) もロックしたくありません。

誰かがこれのデザインを理解するのを手伝ってくれませんか?

私は次のコードを書きましたが、これでは、別のスレッドの処理全体も完了するまでコールバックを受信できないため、この新しいスレッドの目的全体が無効になると思います。

String sLine;
onClick(String line){
synchronized (lock) {
                sLine = line;
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                    doProcessing(Sline);    

                }).start(); 
}
}
4

2 に答える 2