当前位置: 首页 > news >正文

java synchronized关键字用法

文章目录

  • 前置
  • 用法:sync 方法
  • 用法:sync static 方法
  • 用法:sync 同步代码块

前置

synchronized 作用:

它为了解决多线程环境下资源的竞争问题。通过互斥锁机制,确保同一时间只有一个线程可以执行同步的代码

线程对共享变量的修改会立即刷新到主内存中,其他线程可以立即看到最新的值

用法:sync 方法

锁对象:当前实例对象(this)

public class Counter {private int count = 0;// 同步实例方法:锁对象是当前实例(this)public synchronized void increment() {count++;}public int getCount() {return count;}
}

用法:sync static 方法

锁对象:当前类的 Class 对象(如 MyClass.class)

public class StaticCounter {private static int count = 0;// 同步静态方法:锁对象是类的 Class 对象(StaticCounter.class)public static synchronized void increment() {count++;}public static int getCount() {return count;}
}

用法:sync 同步代码块

锁对象:可以灵活指定(如 this、Class 对象或自定义对象)

public class Counter {private int count = 0;// 自定义锁对象private final Object lock = new Object();public void increment() {// 同步代码块:锁对象是 locksynchronized (lock) {count++;}}public int getCount() {return count;}
}

相关文章:

  • io流2——字节输入流,文件拷贝
  • Codeforces 1027 Div3(ABCDEF)
  • Java网络编程基础:从阻塞式I/O到线程池模型
  • DAY 34 超大力王爱学Python
  • C++ —— STL容器——string类
  • ps中通过拷贝的图层和通过剪切的图层
  • java多线程与JUC
  • ck-editor5的研究 (4):初步使用 CKEditor5 的插件功能
  • Cesium快速入门到精通系列教程三
  • 高速串行接口
  • Spring Boot 4.0实战:构建高并发电商系统
  • ArkTS基础
  • spining-lidar的电机和激光雷达体(lidar-imu)之间的标定
  • VMware-VMRC-12.0.1-18113358安装包下载安装与使用(附下载)
  • 数学分析——一致性(均匀性)和收敛
  • 高速串行通信解惑说明
  • ReLU的变体
  • 【项目记录】登录认证(下)
  • vscode 代理模式(agent mode),简单尝试一下。
  • Day42 Python打卡训练营
  • 用腾讯云做淘宝客网站视频下载/跨国网站浏览器
  • 南阳做网站收费/百度一下你就知道了百度一下
  • 网站建设论文3000字范文/营销策划公司排行榜
  • 网站建设评比细则/网络推广的方式
  • 淘宝客网站可以做分销吗/杭州疫情最新情况
  • 做网站免费送域名/济南优化哪家好