多线程(7)多线程带来的性能问题

多线程应用不当会造成性能变慢,不是越多越好

1.上下文切换

需要保存现场,包括指令执行到哪一步了,寄存器计数器等

2.缓存开销

之前的缓存失效了,需要新的缓存

所以CPU规定了线程执行的最小时间,防止频繁的线程切换

3.何时会频繁的上下文切换

竞争锁,IO操作带来频繁阻塞,死锁

4.内存同步带来主存CPU开销

使用synchronize和volatile禁止编译器优化,使各线程不能在使用内缓存,而使用主存

posted @ 2020-05-16 10:34  haohao1234  阅读(485)  评论(0编辑  收藏  举报