摘要:
```java /** * 数据不一致问题 * stop */ public class StopDemo { public static Student student = new Student(); public static class Student{ private int id; private String name; public Student() { id = 0; name 阅读全文
摘要:
```java
/** * 原子性:指一个操作是不可中断的,即使在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰 * long型数据在32位的系统中的读写不是原子性的(long有64位) * 注意:在32位虚拟机下执行,会输出信息 */
public class MultiTheadLong { public static long t = 0; publi... 阅读全文
摘要:
并发偏重于多个任务交替执行,而多个任务之间有可能还是串行的,而并行是真正意义上的“同时执行” 阅读全文
摘要:
synchronized,volatile都解决了共享变量 value 的内存可见性问题,但是前者是独占锁,同时只能有一个线程调用 get()方法,其他调用线程会被阻塞, 同时会存在线程上下文切换和线程重新调度的开销,这也是使用锁方式不好的地方。 而后者是非阻塞算法,不会造成线程上下文切换的开销。 阅读全文