Java多线程学习

上一篇 / 下一篇  2017-05-25 17:00:51 / 个人分类:Java

 同事最近在写个小tool,用到多线程,我顺便也学习一下多线程。
 设计4个线程,其中两个线程完成每次对j增加1,另外两个线程完成对j减少1的。
 
下面是使用内部类实现线程,对j增减的时候没有考虑顺序问题。
 public class ThreadTest{
private j;
public static void main(String args[]){
//声明一个ThreadTest本类对象并实例化
ThreadTest tt=new ThreadTest();
//声明一个增加的对象
Inc inc=tt.new Inc();
//声明一个减少的对象
Dec dec=tt.new Dec();
//循环开启线程
for(int i=0;i<2;i++){
Thread t=new Thread(inc);
t.start();//线程开启
t=new Thread(dec);
t.start();
}
private synchronized void inc(){
j++;
System.out.println(Thread.currentThread().getName()+"-inc:"+j);//打印当前正在运行的执行增加的线程
}

private synchronized void inc(){
j--;
System.out.println(Thread.currentThread().getName()+"-dec:"+j);//打印当前正在运行的执行减的线程
}

class Inc implements Runnable{
public void run(){
    for(int i=0;i<100;i++) 
inc();
}
}

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

TAG: java 多线程

 

评分:0

我来说两句

Open Toolbar