我目前正在使用 Apache Tomcat 作为网络服务器在 Java EE 中构建一个新的网络应用程序。我在工作中使用 jsps 和 servlet。
我的问题是:
我有一个非常标准的业务逻辑。没有一个是同步的,在任何给定时间只会运行我的网络应用程序逻辑的一个线程吗?
由于使所有功能“同步”会导致巨大的开销,是否有任何替代方案?
如果我的项目中有一个静态方法。这使事情变得非常简单,例如:
for (int i=0;i<10000;i++ ) {
counter++;
}
如果该方法不是线程安全的,那么这种方法在多用户应用程序中的行为是什么?是出乎意料的行为吗?!
再次以简单的方式:
如果我的意思是构建一个多用户 Web 应用程序,我应该“同步”我项目中的所有内容吗?如果不是全部,我应该同步什么?