Be concise.
Be useful.
All contributions dictatorially edited by webmasters to match personal tastes.
Please do not paste any copyright violating material.
Please try to avoid dependencies to third-party libraries and frameworks.
int numTasks = 1000; Task<int>[] output = new System.Threading.Tasks.Task<int>[numTasks]; for (int i = 0; i < numTasks; i++) { output[i] = Task.Factory.StartNew( new Func <object, int>(LongRunningOperation), 2000); } Task.WaitAll(output); int LongRunningOperation(object objMs) { int ms = (int)objMs; Thread.Sleep(ms); return ms; }
# 1 f = &(IO.puts(&1)) # 2 printTimes = &(for n <- 1..&1, do: spawn(fn -> f.(n) end)) # 3 fn -> printTimes.(1000) end |> Task.async |> Task.await IO.puts("Finished")
run_n_times(Fun, N) -> Self = self(), Task = fun (I) -> spawn(?MODULE, run_task_and_notify_completion, [Self, Fun, I]) end, lists:foreach(Task, lists:seq(1, N)), wait_for_n_tasks(N). run_task_and_notify_completion(ParentPid, Fun, Arg) -> Fun(Arg), ParentPid ! done. wait_for_n_tasks(0) -> io:format("Finished~n"); wait_for_n_tasks(N) when N > 0 -> receive done -> ok end, wait_for_n_tasks(N-1). run_n_times(F, 1000).
integer :: tasks, n, t, i tasks = 1000 n = num_images() t = this_image() do i = t, tasks, n call f(i) end do sync all print *,"Finished"
{ // in file worker.js onmessage = f } { // in file main.js for (let i = 0; i < 1000; i++) { new Worker ('worker.js') .postMessage (i) } }
const tasks = []; for (let i = 0; i < 1000; i++) { tasks.push(f(i)); } await Promise.all(tasks); console.log("Finished");
class Task implements Runnable { int i; Task(int i) { this.i = i; } @Override public void run() { f(i); } } ExecutorService executor = Executors.newFixedThreadPool(4); for (int i = 1; i <= 1000; i++) { Task task = new Task(i); executor.submit(task); } executor.shutdown(); executor.awaitTermination(10L, TimeUnit.MINUTES); System.out.println("Finished");
threads = 1000.times.map do |i| Thread.new { f(i) } end threads.join