title: java: need to pass arg to thread run() without using the contractor
body: <p>I want to have something like that:</p>
  
  <pre><code>public class WorkerThread implements Runnable {
    int y;
  
    public WorkerThread(int y) {
      this.y = y;
  
    }
  
    @Override
    public void run(int x) {
      System.out.println(x+y);
    }
  }
  </code></pre>
  
  <p>in main</p>
  
  <pre><code>    ExecutorService executor = Executors.newFixedThreadPool(5);
  
      for (int num: number) {
          Runnable worker = new WorkerThread(num);
          for (int  anotherNum : anotherNumbers) {
                  executor.execute(worker.run(anotherNum));
          }
      }
  </code></pre>
  
  <p>I want to have thread for each number and I want to run it with an argument of another number.</p>
  
  <p>I cannot do it because run() does not take an argument in its signature.</p>
  
  <p>what other options do I have?</p>
  
  <p>Please, don't ask me why I need it or try to question the reasons I am using threads here.</p>