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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With