24 EKİM 2010, Pazar
&; Paralel".&Quot; Java için?
Eğer Parallel.For bir eşdeğer olup olmadığını merak ediyordum .Java için net sürümü?
Orada birisi bir örnek arz misiniz? teşekkürler!
CEVAP
24 EKİM 2010, Pazar
Yakın bir şey olurdu sanırım
ExecutorService exec = Executors.newFixedThreadPool(SOME_NUM_OF_THREADS);
try {
for (final Object o : list) {
exec.submit(new Runnable() {
@Override
public void run() {
// do stuff with o.
}
});
}
} finally {
exec.shutdown();
}
TheLQ yorumlarına dayanarak Runtime.getRuntime().availableProcessors();
SUM_NUM_THREADS ayarlayın
Edit: bir temel "Paralel.eklemeye Karar verdi"Uygulama
public class Parallel {
private static final int NUM_CORES = Runtime.getRuntime().availableProcessors();
private static final ExecutorService forPool = Executors.newFixedThreadPool(NUM_CORES * 2, new NamedThreadFactory("Parallel.For"));
public static <T> void For(final Iterable<T> elements, final Operation<T> operation) {
try {
// invokeAll blocks for us until all submitted tasks in the call complete
forPool.invokeAll(createCallables(elements, operation));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static <T> Collection<Callable<Void>> createCallables(final Iterable<T> elements, final Operation<T> operation) {
List<Callable<Void>> callables = new LinkedList<Callable<Void>>();
for (final T elem : elements) {
callables.add(new Callable<Void>() {
@Override
public Void call() {
operation.perform(elem);
return null;
}
});
}
return callables;
}
public static interface Operation<T> {
public void perform(T pParameter);
}
}
Paralel örnek Kullanım.İçin
// Collection of items to process in parallel
Collection<Integer> elems = new LinkedList<Integer>();
for (int i = 0; i < 40; i) {
elems.add(i);
}
Parallel.For(elems,
// The operation to perform with each item
new Parallel.Operation<Integer>() {
public void perform(Integer param) {
System.out.println(param);
};
});
Bu uygulama gerçekten Parallel.ForEach daha benzer sanırım
Edit Eğer ilgilenen olursa bu kadar GitHub üzerine koydum. Parallel For on GitHub
Bunu Paylaş:
Bir Paralel kullanma zamanı.Düzenli bi...
Çözme embarassingly paralel sorunları ...
Nasıl Paralel olana kadar bekleyebilir...
GNU paralel çalışmıyor hiç...
Paralel programlama modeli bugün yarın...