我有一个回调函数,我在其中收到一个字符串。由于处理需要时间,因此该字符串将被传递给单独的线程进行处理。此外,由于多个回调可以同时出现,我希望有一个同步锁,直到我将字符串传递到新线程中。但我不希望新线程(正在处理的地方)也被锁定。
有人可以帮我弄清楚这个设计吗?
我已经编写了以下代码,但在此我认为在单独线程的整个处理也完成之前无法接收回调,从而破坏了这个新线程的全部目的。
String sLine;
onClick(String line){
synchronized (lock) {
sLine = line;
new Thread(new Runnable() {
@Override
public void run() {
doProcessing(Sline);
}).start();
}
}