synchronized 会阻塞,
volatile 是synchronized的轻量级,不会阻塞,不加锁,保持可见性,不能保证原子性,禁止指令重排序。
指令重排序是指jvm优化,指令可能串行。
并发编程三大特性:原子性,可见性,有序性。
实现多线程 runable thread callable
runable和callable的区别
runable 实现 run()
callable 实现call() ,有返回值,可以抛出异常。
future 接受异步执行的结果
synchronized 会阻塞,
volatile 是synchronized的轻量级,不会阻塞,不加锁,保持可见性,不能保证原子性,禁止指令重排序。
指令重排序是指jvm优化,指令可能串行。
并发编程三大特性:原子性,可见性,有序性。
实现多线程 runable thread callable
runable和callable的区别
runable 实现 run()
callable 实现call() ,有返回值,可以抛出异常。
future 接受异步执行的结果