计算密集型:这一类主要是在线程中,按照数学公式,大量求和、求平均、求平方等等操作,这样的任务,大部分需要依赖CPU的计算能力来处理,我们设置线程数一般是:计算机核数n+1。
IO密集型:这一类任务,大部分操作耗时在网络传输、磁盘读写上面,而CPU并未跑满,这类应用比如web服务器,不管是同步阻塞,还是异步非阻塞,他对CPU的利用非常低,耗时操作在IO。为了合理利用CPU,设置线程数一般是:计算机核数n*2。
使用@Transactional有一些需要注意的地方:
- Spring默认情况下会对(RuntimeException)及其子类来进行回滚,在遇见Exception及其子类的时候则不会进行回滚操作
- @Transactional注解应该只被应用到public方法上,这是由Spring AOP的本质决定的