2010-01-29 16 views

risposta

15

Ti consiglio di dare un'occhiata a questo book. Riguarda quasi tutto ciò che riguarda la concorrenza e il multithreading di java e , compresi i principi di codifica e molti esempi.

+0

Grazie per il suggerimento, attualmente sto studiando da "The Art of Multiprocessor Programming". Tuttavia, mi piacerebbe studiare alcuni codici del mondo reale oltre agli esempi nei libri. – abhinav

+0

Che tipo di applicazione stai cercando? Server di rete multithreaded, calcoli paralleli, interazioni GUI, ecc.? –

+0

Ho letto alcune sezioni di Java Concurrency in Practice, è un libro molto carino da avere. Stavo cercando un codice del mondo reale che è stato costruito per gestire un numero elevato di thread, mantenere la sicurezza e ottenere buoni risultati. Quindi, forse server di rete multithreaded? – abhinav

0

Nella concurrency tutorial a trovare gli aspetti come

  • sincronizzazione
  • deadlock
  • così come i concetti di base

discusso. Se wan't a come questo viene utilizzato in un'applicazione reale hanno un'occhiata a Jackrabbit

+0

Grazie, ho appena controllato la fonte. – abhinav

1

migliori tutorial su concurreny in Java mai

The Java Memory Model

+0

Il collegamento non funziona. Puoi aggiornare? –

+0

@John Risolto. Anche se non sono sicuro di quanto sia importante questo link è più. – helpermethod

+0

Grazie. Qualcosa di nuovo che suggeriresti allora? –

8

lo consiglio caldamente di leggere - almeno due volte - (Sono sulla mia quarta lettura ora) il superbo The secrets of Concurrency che Dr. Heinz M. Kabutz ha generosamente reso pubblico sul suo sito web.

Tra gli argomenti:

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

Tutti sono sia divertente ed estremamente ben informato.

Dove, se non nella Overstocked Haberdashery troverete il codice come:

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(); 
    } 
    } 
} 

dove egli usa non solo un CountDownLatche un AtomicIntegeresynchronized(this)e gestisce un InterruptedException apropriately, ha anche usi a double brace initialiser per iniziare la discussione !! Ora se questo non è epico java che cos'è?