Java中的同步??示例程序
作者:网络转载 发布时间:[ 2013/2/26 9:44:11 ] 推荐标签:
前面说到了Java中的同步问题。下面通过一个小小的实例程序来演示Java中的同步方法。其中对前文提到的Counter类做了稍微的修改。
public class Counter {
private int c = 0;
public void increment() {
System.out.println("before increment, c = " + c);
c++;
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("after increment, c = " + c);
}
public void decrement() {
System.out.println("before decrement, c = " + c);
c--;
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("after decrement, c = " + c);
}
public int value() {
return c;
}
}
在上面的Counter类的实现中,分别对increment和decrement方法中增加了sleep(5)的调用,这样做的目的是为了放大两个线程对同一对象的方法调用时的交错效果。
下面是两个线程。在ThreadA中调用了10次increment()方法;在ThreadB中调用了10次decrement()方法。
Thread:
public class ThreadA implements Runnable {
private Counter c;
public ThreadA(Counter c) {
this.c = c;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
this.c.increment();
}
}
}
ThreadB:
public class ThreadB implements Runnable {
private Counter c;
public ThreadB(Counter c) {
this.c = c;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
this.c.decrement();
}
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11