假设你有以下课程:
public class A {
public void run() {
synchronized(B.class) {
System.out.println("A: here");
}
}
}
public class B {
public void run() {
synchronized(B.class) {
System.out.println("B: here");
}
}
}
因此obj a和obj b的同步块内的代码会被同步,如果它在同一个jvm上运行。
我想测试同步,所以我有一个A类和B类的JUnit测试用例。
我通过Eclipse Menu DebugAs-> JUnitTest在eclipse上运行两个测试用例。
结果是,没有同步。这是因为Eclipse为每个启动的JUnit Testcase创建了一个新的JVM吗?
如果是,有没有办法测试同步?
谢谢你
答案 0 :(得分:0)
问题是运行Testcases seperatley。 有了它,它起作用了:
@Test
public void test() {
Class[] cls = {A.class,B.class};
// Parallel among classes
JUnitCore.runClasses(ParallelComputer.classes(), cls);
}