各位大哥急求!!!!解决并发问题,各种方法都行,先谢谢大家。

解决方案 »

  1.   

    没有什么题啊?!
    解决并发分为外同步和内同步
    外同步:就是用sychonize加锁!给对象加琐
    内同步:就是在你要定义你要同步的类的时候给你的需要同步的方法加锁!供参考!
    最好是拿出题来考虑用那中方案
      

  2.   

    同步在设计上就要考虑
    对共享字段是否加volatile关键字,就是对并发访问到的资源解决同步问题
    另外,同步synchronized关键字对临界资源加锁,吃临界资源就是共享资源
    对于并发设计来说,很多时候要考虑你的设计的是否是安全
    举例在单线程下安全的设计在多线程下就不安全了
    class UnThreadSafe{
       private int shareField;//共享字段
       public int getShareFiled(){
        return shareFiled;
       }
       public void setShareField(int shareField){
        this.shareField=shareField;
      }
    }
    就是不安全的设计
    例如
              时间片1          时间片2      时间片3
    thread1   setShareField(10)          if(getShareField()==10) dosomething()
         
    thread2                    setShareFiled(9)
    结果thread1就不可避免的进入dosomething程序块了
    解决方案:如上例
    加锁
    class UnThreadSafe{
       private int shareField;//共享字段
       public synchronized int getShareFiled(){
        return shareFiled;
       }
       public synchronized void setShareField(int shareField){
        this.shareField=shareField;
      }
    }
    我说的是最简单的解决方案