/**
* java 性能优化实践
* java性能技术
* 执行器和任务抽象
* @Runnable如果抛出了一个未捕获的异常,那么它会在栈中传播,执行线程会默认停止运行
* Callable 则会返回一个具体的值或者抛出异常。
*
* @ForkJoinPool框架
* 工作窃取算法
*
* 现代java并发
* 并发设计动机
* 有些会长期运行但存在阻塞的任务,比如IO和其他类似的缓慢操作,等待时间就可以让其他线程交错执行
*
* @流和并行流
* java中的流食一个不可变的数据项序列,传达来自数据源的元素。
* 我们使用map等接收lambda表达式或函数对象的操作来处理数据
* 从外部迭代到内部迭代的转变为数据的并行化和复杂表达式的惰性求值带来机会
*
* @无锁技术
* 阻塞对吞吐量不利,会减低性能,
* 阻塞的问题是它相当于向操作系统表明有机会会对当前线程进行上下文切换
* 通过自旋锁实现,保持CPU核心旋转,意味着一旦接收到数据就可以立即在该核心上操作而不需要进行上下文切换
*
* @Actor技术
* Actor是小型的,自包含的处理单元,它包含自己的状态,有自己的行为,
* 还包含一个用来和其他Actor通信的邮箱(MailBox)系统
* Actor解决状态问题的思路是不共享任何可变状态,只通过不可变的消息相互通信。
* Actor之间的通信是异步的,它会响应收到的消息,执行指定任务。
*
* @在一个并行系统中,每个Actor都有特定的任务,它们构建了一个网络,这样就从底层的并发模型中完全剥离出来。
*
* Actor可以处于同一进程中,并不是必须的。可以是多进程,多机器。
* 通过快速失败策略(fail-fast)
*
*/
java 性能优化实践——现代java并发技术
最新推荐文章于 2024-03-23 05:05:07 发布