Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
martinsakra
Tvůrce
Avatar
martinsakra:17.2.2014 12:35

Zdravim mám dotaz, má Java (SE) v základu nějakou možnost jak procházet pole (u mně 2D pole) vícevláknově? Nebo to musim udělat cestou, rozdělím to ručně v kódu, a pak každému vláknu dám určité hranice co prochází a co ne?

Třeba u C# pokud vím tak foreach umí nějak vícevláknově procházet když se mu řekne.

Odpovědět
17.2.2014 12:35
Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote.
Avatar
Silvinios
Tvůrce
Avatar
Odpovídá na martinsakra
Silvinios:17.2.2014 19:03

Jak takový vícevláknový průchod vypadá?

 
Nahoru Odpovědět
17.2.2014 19:03
Avatar
martinsakra
Tvůrce
Avatar
Odpovídá na Silvinios
martinsakra:17.2.2014 21:31

tak že pokud mám třeba pole čísel o velikosti 10 a každý z nich mám zvýšit o určitou hodnotu, tak 0-3 projede jedno vlákno 4-6 druhé vlákno 7-9 třetí vlákno tj proběhne to cca 3x rychleji. Atomicitu, nebo to aby si navzájem nešahali kam nemají neřešit, mám to zařízený tak, že to vadit nebude

Nahoru Odpovědět
17.2.2014 21:31
Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote.
Avatar
Silvinios
Tvůrce
Avatar
Odpovídá na martinsakra
Silvinios:18.2.2014 7:40

Pokud vím, v Javě zatím žádná obdoba Parallel.ForEach z .NETu není. Můžeš ale použít ExecutorService.

Příklad:

int numberOfThreads = Runtime.getRuntime().availableProcessors();
ExecutorService exec = Executors.newFixedThreadPool(numberOfThreads);
List<Integer> tasks = new ArrayList<Integer>();
for (int i = 0; i < 100; i++) {
  tasks.add(i);
}
try {
  for (final Integer task : tasks) {
    exec.submit(new Runnable() {
      @Override
      public void run() {
        System.out.println("Thread " + Thread.currentThread().getId() + " Task " + task);
      }
   });
  }
} finally {
  exec.shutdown();
}
 
Nahoru Odpovědět
18.2.2014 7:40
Avatar
Honza Bittner
Tvůrce
Avatar
Nahoru Odpovědět
18.2.2014 7:49
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.