首页 > 编程语言 > 详细

多线程笔试

时间:2016-03-11 23:49:19      阅读:248      评论:0      收藏:0      [点我收藏+]

一、多线程共享变量

方式一:变量共享

技术分享
 public class AddMinusOperate { 
   private int j=5;
   
   public synchronized void add() {
        j++;
   }
 
   public synchronized void minus() {
       j--;
   }

  class AddThread implements Runnable {
     public void run() {
       add();
      }
     }
   
  class MinusThread implements Runnable {
      public void run() {
         minus();
      }
    }

  public static void main(String [] args) {
    AddMinusOperate addMinusOpt = new AddMinusOperate();
    for(int i=0;i<2;i++) {
     AddThread addThread = addMinusOpt.new AddThread();
     new Thread(addThread).start();
     MinusThread minusThread = addMinusOpt.new MinusThread();
     new Thread(minusThread).start();
      }
    }
 }
View Code

 方式二:以参数传递的方式共享变量

技术分享
public class OperateValue {
   private int operateValue ;
   /**设置对应getter/setter方法**/
}
 

public AddThread implements Runnable {
  
   private OperateValue optValue;

   public AddThread(OperateValue optValue) {
      this.optValue = optValue;
   }
   
   public void run() {
      synchronized(this) {
         optValue.setOperateValue(optValue.getOperateValue + 1);
       }
   }
}

public MinusThread implements Runnable {
     private OperateValue optValue;
     public MinusThread(OperateValue optValue) {
       this.optValue = optValue;
     }
     public void run() {
       synchronized(this) {
          optValue.setOperateValue(optValue.getOperateValue -1 1);
        }
     }
}

public TestMain {
    public static void main(String [] args) {
     OperateValue optValue = new OperateValue();
     optValue.setOperateValue(5);
     for(int i=0;i<2;i++) {
         AddThread addThread = new AddThread(optValue);
         new Thread(addThread).start();
         MinusThread minusThread = new MinsThread(optValue);
         new Thread(minusThread).start();
     }
    }
}
View Code

 

多线程笔试

原文:http://www.cnblogs.com/moonandstar08/p/5267595.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!