摘要: ```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 阅读全文
posted @ 2019-08-19 16:45 fly_bk 阅读(196) 评论(0) 推荐(0) 编辑
摘要: ```java /** * 原子性:指一个操作是不可中断的,即使在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰 * long型数据在32位的系统中的读写不是原子性的(long有64位) * 注意:在32位虚拟机下执行,会输出信息 */ public class MultiTheadLong { public static long t = 0; publi... 阅读全文
posted @ 2019-08-19 15:39 fly_bk 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 并发偏重于多个任务交替执行,而多个任务之间有可能还是串行的,而并行是真正意义上的“同时执行” 阅读全文
posted @ 2019-08-19 14:49 fly_bk 阅读(177) 评论(0) 推荐(0) 编辑
摘要: synchronized,volatile都解决了共享变量 value 的内存可见性问题,但是前者是独占锁,同时只能有一个线程调用 get()方法,其他调用线程会被阻塞, 同时会存在线程上下文切换和线程重新调度的开销,这也是使用锁方式不好的地方。 而后者是非阻塞算法,不会造成线程上下文切换的开销。 阅读全文
posted @ 2019-08-19 09:14 fly_bk 阅读(206) 评论(0) 推荐(0) 编辑