Programowanie współbieżne w języku Java
Programowanie współbieżne w języku Java
Programowanie współbieżne w języku Java
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