1. java绑核
可以用Java-Thread-Affinity包。Affinity意为亲和性,这个包的作用:加强java线程和cpu的亲和性。也就是说将java线程绑定在指定的核心上,这样可以减少线程切换以及更好地利用缓存,以改善性能
2. java项目打包之后获取resource里面的文件
以前我用的是:
InputStream inputStream = xxx.class.getClassLoader().getResourceAsStream(相对路径)
但是必须得打包才可以获取到,正常项目启动点击下载是获取不到的
现在改为:
ClassPathResource classPathResource = new ClassPathResource(相对路径)
InputStream inputStream = classPathResource.getInputStream())
打不打包都可以获取到,方便。开发的时候就可以测试,而不必打包
3. volatile保证可见性,禁止指令重排
声明变量是volatile的,jvm保证了每次读取变量都从内存中读取,跳过了cpu cache,性能应该是会降低