Strictly for the lulz, here is an implementation of Sleep Sort, first seen on 4chan.
SleepSort.java
package sleepsort; import java.util.Arrays; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorCompletionService; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public final class SleepSort { public static void main(final String[] args) throws Exception { int[] numbers = {90, 80, 70, 60, 50, 40, 30, 20, 10}; int[] sortedNumbers = sort(numbers); System.out.println(Arrays.toString(sortedNumbers)); } private static int[] sort(final int[] numbers) throws InterruptedException, ExecutionException { ExecutorService executor = Executors.newFixedThreadPool(numbers.length); ExecutorCompletionService<Integer> ecs = new ExecutorCompletionService<Integer>(executor); for (int number : numbers) { ecs.submit(new SleepSortCallable((number))); } int[] sortedNumbers = new int[numbers.length]; for (int i = 0; i < sortedNumbers.length; i++) { sortedNumbers[i] = ecs.take().get(); } executor.shutdown(); return sortedNumbers; } private static class SleepSortCallable implements Callable<Integer> { private final int number; public SleepSortCallable(final int number) { this.number = number; } @Override public Integer call() throws Exception { Thread.sleep(number); return number; } } }