1. package demo1;
  2. /**
  3. * synchronized锁重入
  4. * Created by liudan on 2017/6/5.
  5. */
  6. public class MyThread5_synchronized1 {
  7. /**
  8. * 父子类同步必须 都 使用synchronized关键字
  9. */
  10. static class Main {
  11. public int count = 10;
  12. public synchronized void operationSub() {
  13. try {
  14. count--;
  15. System.err.println("Main print count = " + count);
  16. Thread.sleep(100);
  17. } catch (InterruptedException e) {
  18. e.printStackTrace();
  19. }
  20. }
  21. }
  22. static class Sub extends Main {
  23. public synchronized void operationSub() {
  24. while (count > 0) {
  25. try {
  26. count--;
  27. System.err.println("Sub print count = " + count);
  28. Thread.sleep(100);
  29. super.operationSub();
  30. } catch (InterruptedException e) {
  31. e.printStackTrace();
  32. }
  33. }
  34. }
  35. }
  36. /**
  37. * 关键字 synchronized 拥有锁重入的功能, 也就是使用 synchronized 的时候,当一个线程得到一个对象的锁后,再次请求此对象
  38. * 是是可以再次得到该对象的锁。
  39. */
  40. public static void main(String[] args) {
  41. Thread t = new Thread(new Runnable() {
  42. @Override
  43. public void run() {
  44. Sub s = new Sub();
  45. s.operationSub();
  46. }
  47. });
  48. t.start();
  49. }
  50. }

5.synchronized锁重入的更多相关文章

  1. synchronized锁重入

    package synLockIn_1; /* synchronized锁重入,当一个线程得到一个对象锁且还未释放锁时,再次请求此对象锁时可以再次得到该对象的锁 * 此例中线程1进入Service类的 ...

  2. 深入理解Java中的synchronized锁重入

    问题导入:如果一个线程调用了一个对象的同步方法,那么他还能不能在调用这个对象的另外一个同步方法呢? 这里就是synchronized锁重入问题. 一.synchronized锁重入 来看下面的代码: ...

  3. Java 学习笔记之 Synchronized锁重入

    Synchronized锁重入: 当一个线程得到一个对象锁后,再次请求此对象锁时是可以再次得到该对象的锁.这也证明在一个Synchronized方法/块的内部调用本类的其他Synchronized方法 ...

  4. Java并发编程原理与实战十一:锁重入&自旋锁&死锁

    一.锁重入 package com.roocon.thread.t6; public class Demo { /* 当第一个线程A拿到当前实例锁后,进入a方法,那么,线程A还能拿到被当前实例所加锁的 ...

  5. synchronized的重入

    /** * synchronized的重入 * */ public class SyncDubbo1 { public synchronized void method1(){ System.out. ...

  6. 浅谈Java中的锁:Synchronized、重入锁、读写锁

    Java开发必须要掌握的知识点就包括如何使用锁在多线程的环境下控制对资源的访问限制 ◆ Synchronized ◆ 首先我们来看一段简单的代码: 12345678910111213141516171 ...

  7. java的synchronized可重入锁

    在java内部,同一线程在调用自己类中其他synchronized方法/块或调用父类的synchronized方法/块都不会阻碍该线程的执行,就是说同一线程对同一个对象锁是可重入的,而且同一个线程可以 ...

  8. Synchronized可重入锁通俗易懂的简单分析

    可重入锁概念: 当一个线程得到一个对象锁后,再次请求此对象时时可以再次得到该对象的锁的,这也证明synchronized方法/块的内部调用本类的其他synchronized方法/块时,时永远可以得到锁 ...

  9. Synchronized可重入锁分析

    可重入锁又称递归锁,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提是锁对象必须是同一对象或者class), 不会因为之前已经获取过还没实方而发生阻塞.即同一线程可执行 ...

随机推荐

  1. python二叉树简单实现

    二叉树简单实现: class Node: def __init__(self,item): self.item = item self.child1 = None self.child2 = None ...

  2. 安卓RecylerView嵌套和事件处理

    最近遇到了一个需求:RecylerView的某一项为listView,即listView嵌套,且要求内部ListView可以滑动,高度固定. 如果直接简单的写完,会发现有两个问题: 1.内部listV ...

  3. MVC框架定义

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...

  4. NetworkX 使用(二)

    官方教程 博客:NetworkX %pylab inline import networkx as nx Populating the interactive namespace from numpy ...

  5. Linux信号量同步共享内存实验.

    Linux信号量同步共享内存实验. Linux信号量同步共享内存实验. 简述 程序流程 信号量和共享内存的系统函数 信号量系统函数及接口 共享内存系统函数及接口 写程序 读程序 简述 本文主要内容是自 ...

  6. hdu-4027线段树练习

    title: hdu-4027线段树练习 date: 2018-10-10 18:07:11 tags: acm 算法 刷题 categories: ACM-线段树 # 概述 这道线段树的题可以说是我 ...

  7. gdg shell

    export TIMESTAMP=`date +%Y%m%d_%H%M%S`GDGFILE=file1_${TIMESTAMP}.txtsuffix=${GDGFILE#*_}prefix=${suf ...

  8. 机器学习之路:python k均值聚类 KMeans 手写数字

    python3 学习使用api 使用了网上的数据集,我把他下载到了本地 可以到我的git中下载数据集: https://github.com/linyi0604/MachineLearning 代码: ...

  9. Django配置参数可选总结

    一.可选字段参数 null blank core db_index editable primary_key radio_admin unique True or False db_colum hel ...

  10. Markdown的简介(转)

    欢迎使用 Cmd - 在线 Markdown 编辑阅读器 *我们理解您需要更便捷更高效的工具记录思想,整理笔记.知识,并将其中承载的价值传播给他人, Cmd Markdown 是我们给出的答案 -- ...