Synchronize锁继承

如果,父类使用synchronize修饰
子类,也使用synchronize修改
此时,线程是安全的

package com.bjsxt.base.sync005;/*** synchronized的重入**/
public class SyncDubbo2 {static class Main {public int i = 10;public synchronized void operationSup() {try {i--;System.out.println("Main print i = " + i);Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}}static class Sub extends Main {public synchronized void operationSub() {try {while (i > 0) {i--;System.out.println("Sub print i = " + i);Thread.sleep(100);this.operationSup();}} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) {Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {Sub sub = new Sub();sub.operationSub();}});t1.start();}}

运行

Synchronize锁继承相关推荐

  1. Synchronize锁对象

    Synchronize锁对象 可以对任意的Object对象,进行加锁 用法比较灵活 package com.bjsxt.base.sync006;/*** 使用synchronized代码块加锁,比较 ...

  2. Synchronize锁粒度

    Synchronize锁粒度 如果,a线程调用不同的方法,执行一个很长时间的任务 那么,b线程就必须等待很长的时间,才能执行 可以通过减小锁的粒度,去优化代码执行时间 package com.bjsx ...

  3. Synchronize锁重入

    Synchronize锁重入 拥有锁重入的功能 就是在使用synchronize时,当一个线程得到了一个对象的锁之后 再次,请求该对象时,可以再次得到该对象的锁 package com.bjsxt.b ...

  4. 从 class 文件 看 synchronize 锁膨胀过程(偏向锁 轻量级锁 自旋锁 重量级锁)

    大家好,我是烤鸭: 前几天看马士兵老师的并发的课,里边讲到了 synchronize 锁的膨胀过程,今天想用代码演示一下. 1.  简单介绍 关于synchronize jdk 1.5 以后的优化,由 ...

  5. java——无锁、偏向锁、轻量级锁、重量级锁的synchronize锁升级笔记

    本章所需基础知识: 懂得多线程和锁的基础知识就行 或者看完我上一篇的<java多进程和多线程简单复习(不涉及原理)>就可以了 如果没基础建议别看 推荐视频: B站马士兵老师的视频:无锁.偏 ...

  6. 同一事务多次加for_Synchronized锁在Spring事务管理下,为啥还线程不安全?

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 大年初二,朋友问了我一个技术的问题(朋友实在是好学, ...

  7. Innodb锁系统 Insert/Delete 锁处理及死锁示例分析

    A.INSERT 插入操作在函数btr_cur_optimistic_insert->btr_cur_ins_lock_and_undo->lock_rec_insert_check_an ...

  8. unit类型是什么?_项目中有用过锁吗?能解释一下什么是AQS(AbstractQueuedSynchronizer)吗?...

    1 前言 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,如读写锁).在以前,Java程序是靠synchroniz ...

  9. unit类型是什么?_面试官虚晃一枪:项目中有用过锁吗?能解释一下什么是AQS?...

    1 前言 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,如读写锁).在以前,Java程序是靠synchroniz ...

最新文章

  1. Vue.js 组件注册
  2. [Gradle] 在 Eclipse 下利用 gradle 构建系统
  3. python中int函数的用法浅析_Python中int()函数的用法浅析
  4. 又又叒更新,Win 12要来了?
  5. 【华为云技术分享】【DevCloud · 敏捷智库】如何利用核心概念解决估算常见问题
  6. vSphere 7 With K8s系列06:创建命名空间
  7. 多层陶瓷电容器用处_元器件用法:多层陶瓷电容器的用途
  8. Linux DNS 服务器安装、配置和维护
  9. apache和php结合、apache的默认虚拟主机
  10. python机器学习——文本情感分析(英文文本情感分析)
  11. 今年阿里巴巴重要开源项目全在这里
  12. html 背景图片100,css背景图片100%显示
  13. gin框架使用JWT鉴定权限
  14. 安装Ubuntu的几十次坑的经验
  15. Win10下Python3.x环境安装和配置教程
  16. 职教云python题和答案_智慧职教云课堂APPPython程序设计题库及答案
  17. discuz论坛添加、更换返回顶部图标
  18. w7计算机管理器怎么打开,windows7系统任务管理器怎么打开?快捷键是什么?
  19. 横向瀑布流android,GitHub - xinqing/android_waterfall: Android版的瀑布流布局
  20. 修改Mendeley的界面字体

热门文章

  1. 使用 Android 实现联网
  2. RFID自动识别术语解释(zt)
  3. 翻译JScript中的面向对象系列文章
  4. 老虎Sitemap生成器 0.2
  5. MFC中的GDI绘图
  6. 计算机网络第六章ppt课件,计算机网络与通信(第6章).ppt
  7. robo3t 连接服务器数据库_Win7上安装 MongoDB、Robo 3T及vn.py
  8. 多索引表 (2)基本概念
  9. 区块链BaaS云服务(20)百度超级链BaaS
  10. 区块链BaaS云服务(9)索尼 区块链通用数据库 BCDB