标签:顺序 runnable ati png 技术 art return rgs info
继承Thread类不能实现资源共享。(程序启动了三个线程,但是3个线程却分别卖了各自的5张票,并没有达到资源共享的目的)
实现Runnable接口可以资源共享。(程序启动了三个线程,但是3个线程一共才卖了5张票,即ticket属性被所有的线程对象共享)
问题:
设计 4 个线程,其中两个线程每次对 j 增加 1,另外两个线程对 j 每次减少 1。写出程序。
以下程序使用内部类实现线程,对 j 增减的时候没有考虑顺序问题。
代码:
public class Test {
private int j=50;
public static void main(String[] args) {
Test test = new Test();
for(int i=0;i<30;i++){
Thread t=new Thread(test.getAdd());
t.start();
t=new Thread(test.getJian());
t.start();
}
}
public Add getAdd() {
return new Add();
}
public Jian getJian() {
return new Jian();
}
public synchronized void add() {
j++;
System.out.println("加1");
}
public synchronized void jian() {
j--;
System.out.println("减一");
}
class Add implements Runnable{
public void run() {
add();
}
}
class Jian implements Runnable{
public void run() {
jian();
}
}
}
部分效果:
标签:顺序 runnable ati png 技术 art return rgs info
原文地址:https://www.cnblogs.com/miniSimple/p/12266906.html