并发关注点分离的重构
1. 引言
随着多核/众核计算机上并发编程的趋势日益增长,软件工程实践仍落后于硬件发展。并发编程与传统编程不同,它不仅要遵循传统软件开发的设计原则,还需要高性能、无数据竞争和更好的模块化。
关注点分离是软件工程实践中最重要的原则之一。像日志记录、身份验证和异常处理等横切关注点会影响整个应用程序,应尽可能集中处理。并发也是一种典型的非功能属性,需要从软件中分离出来,这样能使并发软件的结构更清晰,更易于维护。
分离并发关注点面临诸多挑战:
- 如何从并发软件中分离并发关注点并封装成模块,因为JDK中提出了许多并发类,且很多类可以实现相同的功能。
- 如何在不牺牲性能的情况下重构软件。
- 如何确保在进行并发重构时软件的安全性。
为应对这些挑战,本文提出了一种分离并发关注点的重构方法,将线程、同步、屏障和线程通信操作重构为独立的方面,使并发能够集中统一管理,并在需要的代码位置复用,且不会出现在最终软件的核心功能中。
2. 示例说明
为了说明重构的难度,以下给出两个Java示例,展示了程序员在编程线程相关操作时可能采用的两种不同方式。
示例一:
public class Test implements Runnable{
public Test(){
}
public void run(){
synchronized(this){
testMeth();
}
}
private v
超级会员免费看
订阅专栏 解锁全文
650

被折叠的 条评论
为什么被折叠?



