java同步锁和独立线程:Android
我有一个回调函数,在其中我接收到一个字符串。 此字符串将被传递到单独的线程进行处理,因为处理需要时间。 另外,由于多个回调可以同时出现,我希望有一个同步锁,直到我将字符串传递到新线程。但我不希望新线程(正在进行处理)也被锁定
有人能帮我弄清楚这个的设计吗
我已经编写了下面的代码,但是在这段代码中,我认为在单独线程的整个处理完成之前,不会收到回调,从而破坏了这个新线程的整体用途
String sLine;
onClick(String line){
synchronized (lock) {
sLine = line;
new Thread(new Runnable() {
@Override
public void run() {
doProcessing(Sline);
}).start();
}
}
# 1 楼答案
试着像下面这样改变
# 2 楼答案
我认为你不需要在这里上锁。多线程无法访问此字符串
答:我看到这里什么也没锁上:)我想如果你这样做会更好: