在同步块内执行新线程

Sun*_*nny 12 java synchronized

如果我在同步块中创建一个新线程,该块是否会保持锁定状态,直到线程执行完成?如果没有,那么它什么时候会被锁定?

String sLine;
onClick(String line){
    synchronized (lock) {
        sLine = line;
        new Thread(new Runnable() {
            @Override
            public void run() {
                 doProcessing(Sline);    
        }).start(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

hmj*_*mjd 14

如果代码join()d与新创建的线程一起,它将只保持锁定,从而等待它完成.由于没有join()锁定将在呼叫start()完成后释放.