定义一个dog类

public class Dog {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}

定义一个同步对象锁

//同步对象锁
public class SysObject implements Runnable {private Dog dog;public SysObject(){if(dog==null){dog=new Dog();}}public void run(){Thread current=Thread.currentThread();synchronized (dog){for(int i=1;i<10;i++){System.out.println( "线程"+current.getName()+"在修改dog的名字" );dog.setName( "卡尔"+ i);System.out.println( dog.getName() );try {Thread.sleep( 1000 );}catch (InterruptedException e){e.printStackTrace();}}}}
}

测试类

public class test109 {public static void main(String[] args){SysObject sysObj=new SysObject();Thread t0=new Thread( sysObj,"歌谣" );Thread t1=new Thread( sysObj,"小白" );Thread t2=new Thread( sysObj,"小红" );t2.setPriority( Thread.MAX_PRIORITY );t2.start();t1.start();t0.start();}
}

运行结果

java学习(162):同步对象锁相关推荐

  1. synchronized同步对象锁

    package com.system.util;import com.common.Constants; import com.util.Cache;/*** 创建同步对象锁* * @author j ...

  2. java学习--类与对象

    文章目录 java学习--类与对象 类的定义与对象的使用 类的私有成员的使用 java学习–类与对象 类的定义与对象的使用 类的定义与对象的使用 类的定义步骤: public 类名: //定义成员变量 ...

  3. java学习之类与对象篇——奥特曼打小怪兽

    java学习之类与对象篇--奥特曼打小怪兽 初次接触Java,我们就被告知Java是一种面向对象的程序设计语言,那么什么是面向对象呢?什么又是对象呢?带着这些个疑问,我们开始了Java学习之旅. 1. ...

  4. java线程(2)--同步和锁

    1.线程的内存模型 Java作为平台无关性语言,JLS(Java语言规范)定义了一个统一的内存管理模型JMM(Java Memory Model),JMM屏蔽了底层平台内存管理细节,在多线程环境中必须 ...

  5. java学习---类与对象

    java学习心得3 文章目录 java学习心得3 类 对象 关键字this 总结与反思 类 一 定义一个Java的类 属性 : 将数据存储在变量中 1成员变量 使用成员变量:对象名.变量名 使用成员方 ...

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

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

  7. Java学习笔记类对象多态继承(下)

    面向对象(下) 1.类的继承 一.什么是继承,有什么用? 继承:在现实世界当中也是存在的,例如:父亲很有钱,几子不用努力也很有钱 继承的作用: 基本作用:子类继承父类,代码可以得到复用.(这个不是重要 ...

  8. 零基础Java学习之类和对象

    类和对象 类 对象 类与对象的关系 类的定义和对象的创建 事物与类的对比 类的定义格式 对象的创建 类 类:是一类具有相同特性的事物的抽象描述,是一组相关属性和行为的集合.可以看成是一类事物的模板,使 ...

  9. java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释

    ***对象作为参数传递*** class passparam { int x;   public static void main(String[] args)   { passparam obj = ...

最新文章

  1. Go 分布式学习利器(20)-- Go并发编程之多路选择和超时控制,channel的关闭和广播
  2. js如何将数据放在一个内置窗口里面_Java 爬虫遇上数据异步加载,试试这两种办法!...
  3. C++网络包截取开发
  4. 用Fidder实现IOS手机抓包
  5. word2007鼠标不好用
  6. 李宏毅《机器学习》作业班+带打比赛
  7. Android横向滚动卡片,Android实现横向滑动卡片效果
  8. TCP三次握手四次挥手(图解)
  9. SAP License:孔乙己,一名ERP顾问
  10. [码海拾贝 之Perl]获取日期以及日期的加减
  11. android dp sp px_你真的了解android的屏幕适配吗?
  12. MySQL学习笔记2:数据库的基本操作
  13. OpenHarmony AI图像识别开发—基于润和Hi3516开发套件
  14. android h5 保存通讯录,h5+调用系统通讯录
  15. excel怎么设置自动计算_机械设计工程师辅助计算Excel表格,自动进行选型计算...
  16. 自动选择阈值--最大类间方差法(OTSU)原理及matlab实现
  17. SQL Server远程连接的设置
  18. 苹果电脑拷贝文件到u盘很慢_给自己挑个好U盘,再也不想天天找同事借了
  19. usaco Typo
  20. Win10 如何进入WinRE模式?

热门文章

  1. r.java是什么_R.java文件介绍
  2. python数据结构的应用场景不包括,Python 数据结构学习
  3. python 浮点数最小值_PYTHON学习笔记(3)——基本数据类型
  4. 引导修复 不是活动的_河南省视频数据修复中心
  5. wordpress 怎么获取站点标题
  6. js文件中声明的一个json对象, 在另一个js文件中可以直接使用。
  7. bash: mail: command not found的解决方法
  8. 监听vuex的某条数据
  9. react(90)--时间戳比较
  10. 前端学习(3121):react-hello-react的state的简写方式