2014-11-15 1 views
0

При поиске куски кода, которые могут привести к тупиков, используя темы, я наткнулся на этот кусок кода:Каков код, написанный внутри сценария мертвой блокировки ниже?

Thread t1 = new Thread(){ 
     public void run(){ 
      while(true){ 
       synchronized(str1){ 
        try { 
         Thread.sleep(10); 
         } catch (InterruptedException e) { 
        } 
        synchronized(str2){ 
         System.out.println(str1 + "::"+str2); 
        } 
       } 
      } 

     } 

    }; 

После объявления и инстанцировании Thread объект, кажется, в этом потоке метод run написан с сопровождающим логики и определение Thread заканчивается закрытием скобки с помощью двоеточия.

Как называется такой блок кода? Это то, что называется анонимным блоком?

+0

Да его анонимный класс. – SMA

+0

Это «анонимный класс». https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html –

+0

Возможный дубликат [Создание экземпляра абстрактного класса или анонимного класса] (http://stackoverflow.com/questions/16785922/creating -the-instance-of-abstract-class-or-anonymous-class) – Joe

ответ

1

Это анонимный класс isntance. Этот код создает экземпляр анонимного класса (т. Е. Он не имеет имени), который расширяет класс Thread и переопределяет его метод run.

+0

Спасибо. Это очень полезно. –

Смежные вопросы