07.03.2014 Views

Programowanie współbieżne w języku Java

Programowanie współbieżne w języku Java

Programowanie współbieżne w języku Java

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Cached Executor oraz zadanie typu Callable.<br />

package thp02;<br />

import java.util.concurrent.ExecutorService;<br />

import java.util.concurrent.Executors;<br />

import java.util.concurrent.Future;<br />

public class ThreadPoolTest {<br />

public static void main(String[] args) {<br />

int numWorkers = Integer.parseInt(args[0]);<br />

ExecutorService tpes = Executors.newCachedThreadPool();<br />

CallableWorkerThread[] workers = new<br />

CallableWorkerThread[numWorkers];<br />

Future futures[] = new Future[numWorkers];<br />

for (int i = 0; i < numWorkers; i++) {<br />

workers[i] = new CallableWorkerThread(i);<br />

futures[i] = tpes.submit(workers[i]);<br />

}<br />

for (int i = 0; i < numWorkers; i++) {<br />

try {<br />

System.out.format("Ending worker: %d%n", futures[i].get());<br />

} catch (Exception e) {<br />

System.err.println(e.getMessage());<br />

}<br />

}<br />

tpes.shutdown();<br />

}<br />

}<br />

=========================================================================<br />

package thp02;<br />

import java.util.concurrent.Callable;<br />

public class CallableWorkerThread implements Callable{<br />

private int workerNumber;<br />

CallableWorkerThread (int number) {<br />

workerNumber = number;<br />

}<br />

}<br />

public Integer call(){<br />

for (int i = 0; i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!