hreads Java e blocos sincronizad

Suponha que eu esteja executando umsynchronized bloco de código dentro de algum segmento e dentro dosynchronized block Chamo um método que gera outro thread para processar um bloco de código sincronizado que requer o mesmo bloqueio que o primeiro método. Então, no pseudo código Java:

public void someMethod() {
  synchronized(lock_obj) {
    // a whole bunch of stuff...

    // this is the last statement in the block
    (new Thread(someOtherMethod())).start();
  }
    // some more code that doesn't require a lock
}

public void someOtherMethod() {
  // some setup code that doesn't require a lock

  // return the stuff we want to run in another thread
  // that does require a lock
  return new Runnable() {
    @Override
    public void run() {
      synchronized(lock_obj) {
        // some more code
      }
    }
  };
}

Não tenho idéia de como entender esse código. O que eu escrevi é legal? Sintaticamente, não vejo nenhum problema, mas não tenho certeza de como raciocinar através de códigos como esse. Então, quando eu executosomeOtherMethod() para criar uma instância deRunnable em que tipo de escopo o código antes da declaração de retorno é executado? Ele é executado como parte do primeiro bloco sincronizado? Suponha que existem outros threads funcionando também que podem exigir o bloqueio delock_obj.

questionAnswers(3)

yourAnswerToTheQuestion