3.多线程代价
来源:互联网 发布:临沂淘宝代运营 编辑:程序博客网 时间:2024/06/14 05:16
从单线程转换成多线程不只是提供了益处。它也有一些代价。不要在应用中因为你可以用就去使用多线程。你应该有一个好的想法通过这样做能得到什么好处,好处要比代价大。当处在怀疑中的时候,尝试着测试衡量应用的性能或者响应速度,代替只是猜测。
更加复杂的设计
虽然多线程的一些部分比单线程的简单,但是其他的部分更加复杂。通过多线程执行的代码访问共享的数据需要特殊的注意。线程交互总是原理简单。来自于不正确的线程同步出现的错误很难去检测,出现以及修复。
上下文切换开销
当一个CPU从一个线程切换到另外一个线程的时候,这个CPU需要保存当前线程的本地数据,程序指针等等信息,以及加载下一个线程的本地数据,程序指针去执行。这个切换称之为“上下文切换”。这个CPU从执行一个线程的上下文切换到执行另外一个线程的上下文。
上下文切换不是低廉的。你不想在线程之间切换超过必须的。
增加资源消耗
一个线程为了运行需要计算机的一些资源。此外CPU的一个线程需要一些内存去保持它的本地堆栈。在操作系统管理线程的内部可能也会占去一些资源。尝试着创建100个线程的程序,除了等什么都不做,然后看着当运行时候会消耗多少内存。
翻译地址:http://tutorials.jenkov.com/java-concurrency/costs.html
0 0
- 3.多线程代价
- 多线程的代价
- 【java多线程的代价】
- 多线程的代价
- 多线程的代价
- 引入多线程的代价
- 多线程的代价
- 多线程的代价
- 多线程的代价
- 多线程的代价及上下文切换
- Java 并发 教程 - 多线程的代价
- Java并发系列-3、多线程的代价
- 代价
- 代价
- 代价
- 代价
- Java并发编程系列之三十:多线程的代价
- Java并发编程系列之六:多线程的代价
- pkg-config 详解
- 代码规范
- 身份证号码验证算法
- Maven 环境的配置
- Stream::Read 方法 (array<Byte>^, Int32, Int32)
- 3.多线程代价
- centos 开通防火墙端口权限
- Spring Boot ---- 快速开发web应用的神器
- Spark定制班第27课:Spark Streaming的为什么在DStream的Action操作之外也可能产生Job操作
- 每天一个命令(17)vmstat - Report virtual memory statistics
- 基于Dex分包方案---热修复、热更新、插件化
- 集合CollectionUtils的操作方法
- LeakCanary: 让内存泄露无所遁形
- log4j日志异步化大幅提升系统性能