java中synchronized的用法和含义

一、概述

我对synchronized关键字的用法和重要性有一些疑问

  • synchronized关键字的意义是什么?
  • synchronized方法什么时候使用
  • 从程序上和逻辑上是什么意思?

二、详解

synchronized关键字是应用于不同的线程读取和写入相同的变量,对象和资源。以下是Sun的引文:

synchronized 方法提供了一种防止线程干扰和内存一致性错误的简单策略:如果一个对象对一个以上线程可见,则对该对象变量的所有读取或写入均通过同步方法完成。

简而言之:当有两个线程正在读取和写入同一个“资源”时,假设变量名为foo,则需要确保这些线程以原子方式访问该变量。如果没有synchronized关键字,线程1可能看不到线程2对foo所做的更改,或者更糟的是,它可能只更改了一半。这在逻辑上不会是您所期望的。

同样,这是Java中不平凡的主题。要了解更多信息,请在SO和Interwebs上探索有关以下主题:

  • 并发,https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html
  • Java内存模型,http://en.wikipedia.org/wiki/Java_Memory_Model

如若转载,请注明出处:https://www.javaidea.cn/article/8292.html

(0)
上一篇 2022年2月7日 上午10:03
下一篇 2022年2月7日 上午10:03

相关推荐

发表评论

您的电子邮箱地址不会被公开。