慕工程4835570
    
    
      天台的月光
    
    我自己的理解是,负载均衡,都是Framework提供的功能;它们提供简单的API而把复杂性隐藏起来;如果想要理解它们的原理,有可能还是得研究“多线程”和“并发”;
各人关注点不同,无需反驳;你觉得有用就继续钻研,如果你觉得不掌握这些知识也够用(使用一些框架),那就好好研究下那些框架的用法;能解决问题就行了。
      Mark_1992
    
    volatile只能保证代码的可见性,而不能保证代码的原子性。所以,当代码包含其他共享变量时,如果被其他线程执行,那么值就会发生改变。
      meetyu
    
    这里面有两个VOLATILE变量,它包含了一个不变式就是LOW<UP( if (value > upper) 和 if (value < low) )
public class A {
    private volatile int low=0;
private volatile int up=100;
   public int getLow() { return low; }
    public int getUp() { return up; }
    public void setLow(int value) { 
        if (value > upper) 
            system.out.print(".......");
        low = value;
    }
    public void setUp(int value) { 
        if (value < low) 
            system.out.print(".......");
       up = value;
    }
}
初始值是0和100,如果有两个线程同时操作set函数,一比如A线程操作setlow(4),B线程setup(3),最后结果是4和3。