2

I am using this code to create threads.

      while ((strLine = br.readLine()) != null) {
                r = new runnable(strLine);
                new Thread(r).start();
                x++;
                Thread.sleep(100);
      }

How can I control the maximum number of threads running at any point of time? This code has issues where memory used keeps rising(memory leak) is there a better way to do this? I tried using scheduler but didnt help.

1 Answer 1

10

You can use an ExecutorService to create constrained thread pools.

ExecutorService executor = Executors.newFixedThreadPool(10);

will create a pool with 10 available threads. You can then call

executor.submit(new Runnable() { ... })

for each unit of work.

EDIT: I should note that this facility is only available in Java 1.5 and later.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.