4. 同步加锁的是对象,而不是代码。因此,如果你的类中有一个同步方法,这个方法可以被两个不同的线程同时执行,只要每个线程自己创建一个的该类的实例即可。

5. 不同的对象实例的synchronized方法是不相干扰的。也就是说,其它线程照样可以同时访问相同类的另一个对象实例中的synchronized方法。

6. synchronized关键字是不能继承的,也就是说,基类的方法synchronized f(){} 在继承类中并不自动是synchronized f(){},而是变成了f(){}。继承类需要你显式的指定它的某个方法为synchronized方法。

7.对一个全局对象或者类加锁时,对该类的所有对象都起作用。

类锁举例

对一个全局变量加锁:

1 public class MySynchronized extends Thread

2 {

3 private int val;

4

5 private static Object lock = new Object();

6

7 public MySynchronized(int v)

8 {

9 val = v;

10 }

11

12 public void printVal(int v)

13 {

14 synchronized (lock)

15 {

16 while (true)

17 {

18 System.out.println(v);

19 }

20 }

21 }

22

java全局变量加锁_Java锁Synchronized,对象锁和类锁举例相关推荐

  1. java 全局变量 加锁_Java锁机制(一)synchronized

    进行多线程编程的时候,需要考虑的是线程间的同步问题.对于共享的资源,需要进行互斥的访问.在Java中可以使用一些手段来达到线程同步的目的: 1. synchronized 2. ThreadLocal ...

  2. Java锁Synchronized对象锁和类锁区别(搬运)

    java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁.线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁.获得内置锁的唯一途径就是进入这个锁的保 ...

  3. java队列加锁_java并发-----浅析ReentrantLock加锁,解锁过程,公平锁非公平锁,AQS入门,CLH同步队列...

    前言 为什么需要去了解AQS,AQS,AbstractQueuedSynchronizer,即队列同步器.它是构建锁或者其他同步组件的基础框架(如ReentrantLock.ReentrantRead ...

  4. 类锁 synchronized对象锁 和 Lock对象锁

    在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制. 对象锁 所有对象都自动含有单一的锁. JVM负责跟踪对象被加锁的次数.如果一个对象被解锁,其计数变为0.在任务(线程)第一次给对象加锁的时候 ...

  5. 可重入锁-synchronized是可重入锁吗?

    目录 前言 1.什么是可重入锁呢? 2.自己写代码验证下可重入和不可重入 3.自己如何实现一个可重入和不可重入锁呢 4.ReentrantLock如何实现可重入的 5.可重入锁的特点 前言 面试题:s ...

  6. java同步关键字_Java中synchronized关键字修饰方法同步的用法详解

    Java的最基本的同步方式,即使用synchronized关键字来控制一个方法的并发访问. 每一个用synchronized关键字声明的方法都是临界区.在Java中,同一个对象的临界区,在同一时间只有 ...

  7. java oop概念_JAVA OOP(一)——OOP概念,类与对象

    OOP概念,类与对象 OOP--面向对象编程 类与对象 类 对象 OOP--面向对象编程 首先,我们来举一个例子: 现在我要用用代码实现下列要求,定义一只猫,它的名字叫"小芳",年 ...

  8. java 格式化字符串_Java入门 - 语言基础 - 14.String类

    1.概述 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 2.创建字符串 创建字符串最简单的方式如下: String gr ...

  9. java 多线程 串行 加锁_java多线程 synchronized 与lock锁 实现线程安全

    如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样 的,而且其他的变量的值也和预期的是一样的,就是线程安全的. 通过卖火车票的例子 火车站要卖票,我们 ...

最新文章

  1. MySQL Profiling 的使用
  2. 一文详解视觉里程计轨迹评估工具-evo的用法
  3. 在温暖的南方惠州①月了。。
  4. Make Them Equal
  5. Ubuntu镜像下载地址
  6. 统计内存使用率shell
  7. ajax 解析数组集合,ajax怎样解析json数组并用模板引擎渲染
  8. mui.ajax php,求助!!!关于mui ajax获取不到后台数据
  9. CWP中的排序算法:C语言
  10. 恕我直言,你可能误解了微服务
  11. Android ListView 滑动背景为黑色的解决办法 listview小知识整理
  12. [改善Java代码]使用静态内部类提高封装性
  13. ENSP实验五——三层交换机+二层交换机
  14. 服务器临时文件定时清理,定时/开机自动清理Win10临时文件夹的技巧
  15. 剑指Offer对答如流系列 - 把数字翻译成字符串
  16. (OJ)Java多线程-子弹射击
  17. 联想ThinkBook 16+ 2023款 评测
  18. php提取字符串中数字,php提取字符串中的数字教程
  19. IDEA项目中配置Maven镜像源(下载源)
  20. 如何轻松地打造一款免开发RGB 三路产品?

热门文章

  1. Logic-算法-XX部队XX侦察队员
  2. 博客开通了,开卷有益,纪念一下
  3. Elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
  4. RocketMQ源码解析-事务消息的二阶段提交
  5. SpringCloud 从菜鸟到大牛之五 统一配置中心 Spring Cloud Config
  6. 多维度对比5款主流分布式MQ消息队列
  7. JVM类加载理解(线程上下文类加载器、Tomcat类加载器)
  8. 如何正确的开始用 Go 编程
  9. MyBatis动态SQL使用
  10. Vue.js - Day5 - Webpack