java面试题网

普通会员

257

帖子

9

回复

131

积分

楼主
发表于 2018-03-23 13:50:41 | 查看: 466| 回复: 0

以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。
public class ThreadTest1{
    private int j;
    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();
         t=new Thread(dec);
         t.start();
      }
   }

  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);
  }

  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();
        }
    }
  }
}


您的帖子在2018-03-23 13:51:11被无聊就上无聊看看网编辑
您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018