- 博客(3)
- 收藏
- 关注
原创 Java 中的volatile 关键字
volatile 关键字 当多线程去访问同一个共享变量的时候会出现并发问题,我们可能想到会用重量级synchronized锁去解决问题,但是使用锁太笨重,因为它会带来线程上下文的切换开销。对于解决内存可见性问题, Java 还提供了一种弱形式的同步,也就是使用volatile 关键字。 该关键字可以确保对一个变量的更新对其他线程马上可见。当一个变量被声明为volatile 时,线程在写入变量时不会...
2019-11-29 10:54:05
115
原创 什么是线程上下文的切换?
什么是线程上下文的切换 对于单核CPU来说(对于多核CPU,此处就理解为一个核),CPU在一个时刻只能运行一个线程,当在运行一个线程的过程中转去运行另外一个线程,这个叫做线程上下文切换(对于进程也是类似)。 由于可能当前线程的任务并没有执行完毕,所以在切换时需要保存线程的运行状态,以便下次重新切换回来时能够继续切换之前的状态运行。举个简单的例子:比如一个线程A正在读取一个文件的内容,正读到文件...
2019-11-29 10:47:38
731
原创 Redis 和 Memcached 有什么区别?Redis 的线程模型是什么?为什么单线程的 Redis 比多线程的 Memcached 效率要高得多?
Redis 和 Memcached 有什么区别?Redis 的线程模型是什么?为什么单线程的 Redis 比多线程的 Memcached 效率要高得多?面试题面试官心理分析面试题剖析redis 和 memcached 有啥区别?redis 的线程模型为啥 redis 单线程模型也能效率这么高? 面试题 redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis...
2019-11-28 11:59:11
434
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人