Java 中的锁
对象锁和类锁实例锁直接使用 synchronize(this),或者直接把synchronize 加在方法上,在这种方式属于对象锁,只能锁住同一个对象的实例。如果new了多个对象,这种方式就没用了类锁synchronize加在静态方法,或者synchronize块使用静态变量或者类名称做为锁,类信息是存在 JVM 方法区的,并且整个 JVM 只有一份,方法区又是所有线程共享的,所以类锁是所有线程共
对象锁和类锁实例锁直接使用 synchronize(this),或者直接把synchronize 加在方法上,在这种方式属于对象锁,只能锁住同一个对象的实例。如果new了多个对象,这种方式就没用了类锁synchronize加在静态方法,或者synchronize块使用静态变量或者类名称做为锁,类信息是存在 JVM 方法区的,并且整个 JVM 只有一份,方法区又是所有线程共享的,所以类锁是所有线程共
场景代码片段,查询是否有用户“小明”,没有则插入。模拟10个线程并发执行。@GetMapping("/test") public void test() { for (int i = 0; i < 10; i++) { new Thread(() -> { testService.save(); }).
安装Docker,并设置Docker仓库为阿里云yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-
Java程序出现bug陷入死循环,Linux服务器Cpu飙升到100%,如何才能快速定位到Java程序的某一行?其实Java虚拟机自带了堆栈跟踪工具 -- jstack,我们可以利用他很好的排查为了制造陷入死循环的bug,先准备一个api,只要请求/test?count={} 就能拉高cpu@RequestMapping("/test") public long test(lo