在同步块内执行新线程

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

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

如果代码join() d与新创建的线程,它将只保持锁定,从而等待它完成。 由于没有join()因此在调用start()完成后将释放锁。

没有线程有单独的生命。 在上述情况下,同步块将被阻止,直到线程的起始点。