作用于方法时,锁住的是对象的实例(this); 当作用于静态方法时,锁住的是Class实例,又因为Class的相关数据存储在永久带PermGen(jdk1.8 则是 metaspace),永久带是全局共享的,因此静态方法锁相当于类的一个全局锁, 会锁所有调用该方法的线程; synchronized
### 查询catalina.out下 "mType":"AAA",出现的次数 [root@iZbp18nyz28va2zwadft2qZ logs]# grep -o '"mType":"AAA",' catalina.out | wc -l 680 [root@iZbp18nyz28va2zw
1 QPS、TPS、并发用户数、吞吐量关系 1、QPS QPS Queries Per Second 是每秒查询率 ,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。 2、TPS TPS Transactio
Q1:ArrayList你项目中有使用吗? A1:第一问等于没问。肯定用,而且频率还挺高。 Q2:第二问线程不安全。 A2:为啥呢。看代码噶 public class NotSafeDemo{ public static void main(String[] args) { Li
import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicStampedReference;
上一篇文章中简单介绍过synchronized关键字的方式,其中,同步代码块使用monitorenter和monitorexit两个指令实现,同步方法使用ACC_SYNCHRONIZED标记符实现。后面几篇文章会从JVM源码的角度更加深入,层层剥开synchronized的面纱。 在进入正题之前,肯
synchronized,是Java中用于解决并发情况下数据同步访问的一个很重要的关键字。当我们想要保证一个共享资源在同一时间只会被一个线程访问到时,我们可以在代码中使用synchronized关键字对类或者对象加锁。那么,本文来介绍一下synchronized关键字的实现原理是什么。在阅读本文之间