您的位置:首页 > 其它

用内部类实现多线程的方案

2009-03-11 13:18 155 查看
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。

以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。

package test;

public class ThreadTest {
//定义变量,用于检测线程调度的先后次序
private int j;

public static void main(String args[]) {
ThreadTest tt = new ThreadTest();
Inc inc = tt.new Inc();
Dec dec = tt.new Dec();
//循环两次,每次启动2个线程,总共有4个线程
for (int i = 0; i < 2; i++) {
Thread t = new Thread(inc);
t.start();
t = new Thread(dec);
t.start();
}
}
//synchronized 线程同步 同一时间内只能执行这个类中的一个方法
private synchronized void inc() {
j++;
System.out.println(Thread.currentThread().getName() + "-inc:" + j);
}

private synchronized void dec() {
j--;
System.out.println(Thread.currentThread().getName() + "-dec:" + j);
}
//实现Runnable接口 java中有2中方法实现线程 1、扩展java.lang.Thread类 2、实现java.lang.Runnable接口
class Inc implements Runnable {
public void run() {
for (int i = 0; i < 10; i++) {
inc();
}
}
}

class Dec implements Runnable {
public void run() {
for (int i = 0; i < 10; i++) {
dec();
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: