试编写一个多线程的程序.
要求:启动4个线程.两个循环10次,每次将某全局变量加1,另两个循环10次,每次将此变量减1.请输出该变量的变化结果.各位大大看看怎样写才最好!

解决方案 »

  1.   

    全局变量写成volatile修饰就可以必要的地方采用synochronized关键字应该主要是考这两个地方吧
      

  2.   

    public class ThreadTest1{
        public static a;
        public static void main(String []args){
    ThreadTest1 tt=new ThreadTest1();
    Inc inc=tt.new Inc();
    Dec dec=tt.new Dec();
    for(int i=0;i<2;i++){
       Thread t= new Thread(inc);
       t.start;
       Thread t= new Thread(dec);
       t.start;
    }
    }
         private synchronized void inc(){
         a++;
         System.out.println(Thread.currentThread().getName+"-inc:+a");
         }
         private synchronized void dec(){
         a--;
         System.out.println(Thread.currentThread().getName+"-dec:+a");
         }
       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();
        }
       }
       }
    }