在多线程并发的代码中我们平常会使用Synchronized 关键字对某一个对象上锁, 在JVM内部,同时运行的每个线程都会有他自己的独立内存空间和主内存中拷出的所需数据的缓存副本,真正被同步的是在不同线程中表示被锁定对象的内存块,在同步块或同步方法执行完后,对被锁定的对象做的任何修改要在释放锁之前写回到主内存中;在进入同步块得到锁之后,被锁定对象的数据是从主内存中读出来的,持有锁的线程的数据副本一定和主内存中的数据视图是同步的 。
在多线程并发的代码中我们平常会使用Synchronized 关键字对某一个对象上锁, 在JVM内部,同时运行的每个线程都会有他自己的独立内存空间和主内存中拷出的所需数据的缓存副本,真正被同步的是在不同线程中表示被锁定对象的内存块,在同步块或同步方法执行完后,对被锁定的对象做的任何修改要在释放锁之前写回到主内存中;在进入同步块得到锁之后,被锁定对象的数据是从主内存中读出来的,持有锁的线程的数据副本一定和主内存中的数据视图是同步的 。