Snchronize对象锁同步
对象锁同步
A线程,先持有对象的锁
b线程,如果在这个时候,调用对象中synchronize修饰的同步方法
则需要等待
package com.bjsxt.base.sync003;/*** 对象锁的同步和异步问题**/
public class MyObject {public synchronized void method1(){try {System.out.println(Thread.currentThread().getName());Thread.sleep(4000);} catch (InterruptedException e) {e.printStackTrace();}}/** synchronized */public synchronized void method2(){System.out.println(Thread.currentThread().getName());}public static void main(String[] args) {final MyObject mo = new MyObject();/*** 分析:* t1线程先持有object对象的Lock锁,t2线程可以以异步的方式调用对象中的非synchronized修饰的方法* t1线程先持有object对象的Lock锁,t2线程如果在这个时候调用对象中的同步(synchronized)方法则需等待,也就是同步*/Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {mo.method1();}},"t1");Thread t2 = new Thread(new Runnable() {@Overridepublic void run() {mo.method2();}},"t2");t1.start();t2.start();}}
运行
T1输出,过了4秒之后,t2才输出
说明,调用对象的synchronize修饰的方法,需要等待
Snchronize对象锁同步相关推荐
- java学习(162):同步对象锁
定义一个dog类 public class Dog {private String name;public String getName() {return name;}public void set ...
- java线程同步以及对象锁和类锁解析(多线程synchronized关键字)
一.关于线程安全 1.是什么决定的线程安全问题? 线程安全问题基本是由全局变量及静态变量引起的. 若每个线程中对全局变量.静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的:若有多个线 ...
- synchronized同步对象锁
package com.system.util;import com.common.Constants; import com.util.Cache;/*** 创建同步对象锁* * @author j ...
- java同步锁synchronized_Java对象锁和类锁全面解析(多线程synchronized关键字)
本文主要是将synchronized关键字用法作为例子来去解释Java中的对象锁和类锁.特别的是希望能帮大家理清一些概念. 一.synchronized关键字 synchronized关键字有如下两种 ...
- java锁方法和锁代码块_java的同步方法和同步代码块,对象锁,类锁区别
/** * @author admin * @date 2018/1/12 9:48 * 做用在同一个实例对象上讨论 * synchronized同步方法的测试 * 两个线程,一个线程调用synchr ...
- (转)互斥对象锁和临界区锁性能比较 .
在Win32平台上进行多线程编程,常会用到锁.下边用C++实现了互斥对象(Mutex)锁和临界区(CRITICAL_SECTION)锁,以加深理解和今后方便使用.代码已在VS2005环境下编译测试通过 ...
- date对象加十分钟_一张图讲解对象锁和关键字synchronized修饰方法(代码块)
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 每个对象在出生的时候就有一把钥匙(监视器Monitor),那么被synchronized 修饰的方法相当于给方法加了一个锁 ...
- Java:使用synchronized和Lock对象获取对象锁
在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制. 1.对象的锁 所有对象都自动含有单一的锁. JVM负责跟踪对象被加锁的次数.如果一个对象被解锁,其计数变为0.在任务(线程)第一次给对象加锁 ...
- 对象的notify方法的含义和对象锁释放的三种情况
1,notify的含义 (1)notify一次只随机通知一个线程进行唤醒 (2)在执行了notify方法之后,当前线程不会马上释放该对象锁,呈wait状态的线程也不能马上获得该对象锁, 要等到 ...
最新文章
- 拼音开头有什么字_excel查找函数应用:如何提取姓名的拼音首字母
- windows2003 DNS服务器配置
- 一个悄然成为世界最流行的操作系统诞生!
- Python学习6——条件,循环语句
- scala java maven项目_IntelliJ IDEA下Maven创建Scala项目的方法步骤
- 他山之石,可以攻玉——来自亚马逊的电商启示录
- 强大的Canvas开源库Fabric.js简介与开发指南
- java解析html jsoup_2020-06-02 jsoup java解析html
- 按平均成绩排行c语言文件操作,学生成绩管理系统(c语言结构体以及文件操作)实验报告精选.doc...
- POJ2728 最小比率生成树/0-1分数规划/二分/迭代(迭代不会)
- Java 队列 Queue 使用说明
- Play 2.0 用户指南 - 表单提交和验证 --针对Scala开发者
- ganglia不能获取gpu_免费试用亚马逊云服务器进行深度学习实验:免环境配置/GPU支持...
- Python雷电小游戏、战机小游戏源代码源程序
- 精通Javascript之引用
- 视频教程-EOS 入门实战-区块链
- springboot配置log4j2
- 腾讯Docker云平台GaiaStack
- 机器人笔记psv中文_《机器人笔记》白金攻略 机器人笔记奖杯攻略
- 如何对待新事物_以积极态度看待不断出现的新事物