Синхронизированный блок внутри метода запуска

Если у меня есть что-то вроде ниже, так что это значит внутриsynchronized block

synchronised (syncObject) {

По сути, это будет означать, что только один поток может быть внутри вышеуказанного блока, и как только один поток завершит выполнение, второй поток войдет в этот синхронизированный блок.synchronised (syncObject), Правильно? Может кто-нибудь объяснить мне на языке LayMan, чтобы я мог получить лучшую картину?

private static final class Task implements Runnable {
{
  private static Object syncObject = new Object();

    public Task(Command command, BlockingQueue<Integer> pool1, BlockingQueue<Integer> pool2) {
    this.command = command;
    this.existPool = pool1;
    this.newPool = pool2;
}

  public void run()
  {
    synchronised (syncObject) {
      if() {
        existId = existPool.take();
        attributeMethod(existId);
        } else if() {
            newId = newPool.take();
            attributeMethod(newId);
        }
    }
  }
}

// So I need to make this method synchronized or not? Currently I have made this synchronized
private synchronized void attributeMethod(int range) {
    // And suppose If I am calling any other method here-

 sampleMethod();
}


// What about this method, I need to make this synchronized as well? or not?
private synchronized void sampleMethod() {


}

Ответы на вопрос(2)

Ваш ответ на вопрос