月度记录-2023-1月

60 阅读1分钟

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,性能应该是会降低