博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
synchronized
阅读量:5060 次
发布时间:2019-06-12

本文共 364 字,大约阅读时间需要 1 分钟。

1.synchronized修饰非静态方法

  • synchronized修饰普通方法实际是给该对象上锁“对象锁”
  • 只有当同一个对象在两个不同的线程中访问该方法时才会产生互斥
  • 不同对象可以同时访问该方法。因为锁针对的是对象,不是方法。

2.synchronized修饰静态方法

  • synchronized修饰静态方法实际是对该类加锁,俗称“类锁”
  • 用类直接调用修饰的方法,会产生互斥
  • 因为针对的是类,所以无论怎样都会产生互斥

3.一个对象在两个线程中分别调用一个静态同步方法和一个非静态同步方法

  • 因为虽然是对象同步调用,但是锁的类型不同,调用静态同步方法实际上是类对象在调用,
  • 即两个同步方法产生的不是一类锁,所以不会互斥,会同步执行。

转载于:https://www.cnblogs.com/yanyy/p/10423874.html

你可能感兴趣的文章
【贪心+DFS】D. Field expansion
查看>>
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
IOS-每个程序员的编程之路上都应该看这11本书
查看>>
自定义tabbar(纯代码)
查看>>
小程序底部导航栏
查看>>
ibatis学习笔记
查看>>
18-ES6(1)
查看>>
poj1611 简单并查集
查看>>
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>
C# BS消息推送 SignalR介绍(一)
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>