package org.smartly.commons.async;
import org.smartly.commons.Delegates;
/**
*
*/
public class AsyncUtils {
// --------------------------------------------------------------------
// p u b l i c
// --------------------------------------------------------------------
/**
* Creates array of Async actions
*
* @param length
* @param callback
* @return
*/
public static Thread[] createArray(final int length, final Delegates.CreateRunnableCallback callback) {
final Thread[] result = new Thread[length];
for (int i = 0; i < length; i++) {
final Runnable action = null != callback ? callback.handle(i, length) : getEmptyAction();
result[i] = new Thread(action);
result[i].setDaemon(true);
}
return result;
}
// --------------------------------------------------------------------
// p r i v a t e
// --------------------------------------------------------------------
private static Runnable getEmptyAction() {
return new Runnable() {
@Override
public void run() {
// nothing to to, just a stub
}
};
}
}