I have the following simple code
import java.util.concurrent.*;
import org.junit.*;
/* test whether priorityBlockingQueue provides fairness
*
*/
public class BlahTest {
@Test
public void blahTest() throws Exception {
ExecutorService exec = Executors.newCachedThreadPool();
for(int i=0;i<100;i++) {
exec.submit(
new Thread() {
public void run() {
try {
Thread.sleep(10000000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
);
}
Thread.sleep(30000);
exec.shutdown();
}
}
if I run this with "maven test", and I do a jstack, I see only 5
threads in the pool, instead of the 100 that I'm expecting. indeed if
I run it with java -cp MY_CP:blah:blah org.junit.runner.JUnitCore
BlahTest
then jstack does show 100 threads
why is this?
the pom.xml is attached here if you want to test it out
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>blah</artifactId>
<groupId>blah</groupId>
<packaging>jar</packaging>
<version>0</version>
<name>blah</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]