2010-01-29 22 views

Respuesta

15

Yo recomendaría que eche un vistazo a este book. Cubre casi todo sobre java y concurrencia/multihilo, incluidos los principios de codificación y muchos ejemplos.

+0

Gracias por la sugerencia, actualmente estoy estudiando en "The Art of Multiprocessor Programming". Sin embargo, me gustaría estudiar algunos códigos del mundo real además de ejemplos en libros. – abhinav

+0

¿Qué tipo de aplicación estás buscando? ¿Servidores de red multiproceso, cálculos paralelos, interacciones GUI, etc.? –

+0

Leí algunas secciones de Java Concurrency in Practice, es un libro muy bueno para tener. Estaba buscando un código de mundo real que se haya diseñado para manejar una gran cantidad de hilos, mantener la seguridad y tener un buen rendimiento. Entonces, ¿quizás servidores de red multiproceso? – abhinav

0

En el concurrency tutorial a encontrar los aspectos como

  • sincronización
  • estancamientos
  • así como conceptos básicos

discutido. Si quieres probar a cómo esto se utiliza en una aplicación real tienen vistazo a Jackrabbit

+0

Gracias, acabo de ver la fuente. – abhinav

1

Mejor tutorial sobre concurreny en Java siempre

The Java Memory Model

+0

El enlace no funciona. ¿Puedes actualizar? –

+0

@John Fixed. Aunque no estoy seguro de cuán relevante ya no es este enlace. – helpermethod

+0

Gracias. ¿Alguna novedad que sugieras? –

8

no te recomiendo que leas - al menos dos veces - (Estoy en mi cuarta lectura ahora) el excelente The secrets of Concurrency que Dr. Heinz M. Kabutz ha hecho público de forma generosa en su sitio web.

temas incluyen:

The Law of the Sabotaged Doorbell
The Law of the Distracted Spearfisherman
The Law of the Overstocked Haberdashery
The Law of the Blind Spot
The Law of the Leaked Memo
The Law of the Corrupt Politician
The Law of the Micromanager
The Law of Cretan Driving
The Law of Sudden Riches
The Law of the Uneaten Lutefisk
The Law of the Xerox Copier

Todos son a la vez entretenido y muy informativo.

Dónde, si no en el Overstocked Haberdashery va a encontrar un código como:

public class ThreadCreationTest { 
    public static void main(String[] args) throws InterruptedException { 
    final AtomicInteger threads_created = new AtomicInteger(0); 
    while (true) { 
     final CountDownLatch latch = new CountDownLatch(1); 
     new Thread() { 
     { start(); } 
     public void run() { 
      latch.countDown(); 
      synchronized (this) { 
      System.out.println("threads created: " + 
       threads_created.incrementAndGet()); 
      try { 
       wait(); 
      } catch (InterruptedException e) { 
       Thread.currentThread().interrupt(); 
      } 
      } 
     } 
     }; 
     latch.await(); 
    } 
    } 
} 

en la que no sólo se utiliza una CountDownLatchy un AtomicIntegerysynchronized(this)y maneja un InterruptedException apropriately, incluso usos un double brace initialiser para comenzar el hilo !! Ahora si eso no es épico java ¿qué es?

Cuestiones relacionadas