title: New thread from Callable instead of Runnable?
body: <p>Threads are normally created from <code>Runnable</code>s. Is there a way to create a thread from a <code>Callable</code>?</p>
  
  <pre><code>public class AddNumImmediately implements Callable {
      private int minRange;
      private int maxRange;
      private Set&lt;Integer&gt; primeNumberList;
      private int step;
  
      public AddNumImmediately(int minRange, int maxRange, Set&lt;Integer&gt; primeNumberList, int step) {
          this.minRange = minRange;
          this.maxRange = maxRange;
          this.primeNumberList = primeNumberList;
          this.step = step;
      }
  
      @Override
      public Object call() {
          for (int i = minRange; i &lt;= maxRange; i += step) {
              if (PrimeChecker.isPrimeNumber(i)) {
                  primeNumberList.add(i);
              }
          }
          return primeNumberList;
      }
  }
  </code></pre>
  
  <p>And then I try to run my Callable via Thread:</p>
  
  <pre><code>public void setup(int min, int max, int threadNumber) throws InterruptedException {
      Set&lt;Integer&gt; primeNumberList = new LinkedHashSet&lt;&gt;();
      List&lt;Thread&gt; threadList = new ArrayList&lt;&gt;();
  
      for (int i = 0; i &lt; threadNumber; i++) {
          threadList.add(new Thread(String.valueOf(new AddNumImmediately(min, max, primeNumberList, threadNumber))));
      }
      for (Thread thread : threadList) {
          thread.start();
      }
  
      for (Thread thread : threadList) {
          thread.join();
      }
      System.out.println(primeNumberList);
  }
  </code></pre>
  
  <p>I know that <code>Callable</code>s can be run by an <code>Executor</code>, but is it possible to somehow run them through <code>Thread</code>?</p>