Synchronize对象改变
Synchronize
对象锁改变
当对一个对象加锁时
如果,对象本身发生改变,那么,持有的锁就不同了
如果,对象本身不改变,那么,依然是同步的
package com.bjsxt.base.sync006;/*** 锁对象的改变问题**/
public class ChangeLock {private String lock = "lock";private void method() {synchronized (lock) {try {System.out.println("当前线程 : " + Thread.currentThread().getName() + "开始");lock = "change lock";Thread.sleep(2000);System.out.println("当前线程 : " + Thread.currentThread().getName() + "结束");} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) {final ChangeLock changeLock = new ChangeLock();Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {changeLock.method();}}, "t1");Thread t2 = new Thread(new Runnable() {@Overridepublic void run() {changeLock.method();}}, "t2");t1.start();try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}t2.start();}}
运行
由于,lock改变了
并不是一个锁
锁对象改变,持有的锁就不同了
所以,没有同步
Synchronize对象改变相关推荐
- 【TypeScript】防止对象改变
Object.freeze() 防止对象改变 const 声明并不会真的保护数据不被改变. 为了确保数据不被改变,JavaScript 提供了一个函数 Object.freeze. 任何更改对象的尝试 ...
- JavaScript文档对象模型document对象改变Html元素样式属性(5)
1. document对象改变Html元素样式属性 行内样式操作案例如下: <!DOCTYPE html> <html><head><meta charset ...
- JavaScript文档对象模型document对象改变Html表单属性(4)
1.document对象改变Html表单属性 更改Html元素内容时候可以用innerHtml属性进行修改,但是表单元素只能用value属性修改元素内容 案例如下: <!DOCTYPE html ...
- JavaScript文档对象模型document对象改变Html元素内容(3)
1.document对象改变Html元素内容 (1.)innerText不会自动解析html标签,会将代码前后的空格和换行去掉 innerHTMl会自动解析html标签,保留代码前后的空格和换行 (推 ...
- log4j对象改变日志级别
log4j对象改变日志级别可批量的改变所有级别,或是根据条件改变日志级别. log4j配置文件: log4j.rootLogger=ERROR,FILE,CONSOLE,EXECPTION #log4 ...
- Vue2 侦听器监听对象改变4种方式
** Vue2 watch监听对象改变4种方式 1.整个对象一起改变可以直接监听到. data() {return {info: { name: "张三" },};}, watch ...
- Synchronize对象属性改变
对象属性改变 使用一个对象进行加锁时 如果,对象本身不发生改变,依然是同步的 对象属性,发生改变,不会影响同步 package com.bjsxt.base.sync006;/*** 同一对象属性的修 ...
- (重要)java都是值传递,与对象形参所指向的对象改变,其实参所指向的对象也相应改变并不矛盾(2011年9.30日一天写的两个程序的总结结果)...
1.0建立二叉树的代码,在java中必须创建二叉树的方法必须用返回值,因为不存在c语言中的引用传递,在java中只有值传递 代码1为正确,代码2(没有使用返回值)为错误.那么为什么之前的例子中将对象作 ...
- java中形参不可以是对象吗_(重要)java都是值传递,与对象形参所指向的对象改变,其实参所指向的对象也相应改变并不矛盾(2011年9.30日一天写的两个程序的总结结果)...
1.0建立二叉树的代码,在java中必须创建二叉树的方法必须用返回值,因为不存在c语言中的引用传递,在java中只有值传递 代码1为正确,代码2(没有使用返回值)为错误.那么为什么之前的例子中将对象作 ...
最新文章
- easyexcel生成excel_阿里JAVA解析Excel工具easyexcel
- python经典小游戏-python零基础入门的小游戏。
- 数据库 —— 应用程序与数据库的连接
- 保存delphi中的library path
- 【STM32】GPIO功能复用
- neo4j 查询同一节点的两个上级_WhatRoute for Mac(互联网流量诊断查询工具)
- 如何安装Favicon
- 知识点2-1:设置开发环境
- python语言控制结构是指_python程序的三种控制结构
- 【KMP】KMP 字符串匹配算法
- Java多线程概念[同步容器,并发容器](二)
- LeetCode 1035 不相交的线
- 【DIY贴片机】基于opencv识别定位电子元件
- mysql字段描述_详细的MySQL字段类型描述
- R学习笔记:《R语言入门与数据分析》
- Python爬取王者荣耀所有英雄以及高清大图
- 神经网络知识梳理——从神经元到深度学习
- 陈吉平-阿里巴巴离职DBA在35岁总结的职业生涯
- JAVASE阶段测试试卷
- 基于php的酒店管理系统文献综述,酒店管理系统文献综述酒店管理系统文献综述.ppt...