title: Can I use Callable threads without ExecutorService?
body: <p>Can I use Callable threads without ExecutorService? We can use instances of Runnable and subclasses of Thread without ExecutorService and this code works normally. But this code works consistently:</p>
  
  <pre><code>public class Application2 {
  
      public static class WordLengthCallable implements Callable {
          public static int count = 0;
          private final int numberOfThread = count++;
  
          public Integer call() throws InterruptedException {
              int sum = 0;
              for (int i = 0; i &lt; 100000; i++) {
                 sum += i;
              }
              System.out.println(numberOfThread);
              return numberOfThread;
         }
     }
     public static void main(String[] args) throws InterruptedException {
         WordLengthCallable wordLengthCallable1 = new WordLengthCallable();
         WordLengthCallable wordLengthCallable2 = new WordLengthCallable();
         WordLengthCallable wordLengthCallable3 = new WordLengthCallable();
         WordLengthCallable wordLengthCallable4 = new WordLengthCallable();
         wordLengthCallable1.call();
         wordLengthCallable2.call();
         wordLengthCallable3.call();
         wordLengthCallable4.call();
         try {
             Thread.sleep(1000);
         } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.exit(0);
    }
  }
  </code></pre>
  
  <p>With ExecutorService the code works with few threads. Where are my mistakes?</p>