synchronized(八)
package com.bjsxt.base.sync006;
/**
* 同一对象属性的修改不会影响锁的情况
* @author alienware
*
*/
public class ModifyLock {
private String name ;
private int age ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public synchronized void changeAttributte(String name, int age) {
try {
System.out.println("当前线程 : " + Thread.currentThread().getName() + " 开始");
this.setName(name);
this.setAge(age);
System.out.println("当前线程 : " + Thread.currentThread().getName() + " 修改对象内容为: "
+ this.getName() + ", " + this.getAge());
Thread.sleep(2000);
System.out.println("当前线程 : " + Thread.currentThread().getName() + " 结束");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
final ModifyLock modifyLock = new ModifyLock();
Thread t1 = new Thread(new Runnable() {
public void run() {
modifyLock.changeAttributte("张三", 20);
}
},"t1");
Thread t2 = new Thread(new Runnable() {
public void run() {
modifyLock.changeAttributte("李四", 21);
}
},"t2");
t1.start();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
t2.start();
}
}
运行结果:
当前线程 : t1 开始
当前线程 : t1 修改对象内容为: 张三, 20
当前线程 : t1 结束
当前线程 : t2 开始
当前线程 : t2 修改对象内容为: 李四, 21
当前线程 : t2 结束
转载于:https://www.cnblogs.com/tsdblogs/p/8760509.html
synchronized(八)相关推荐
- 谷粒商城 Day09 首页分类与SpEL动态缓存切面
Day09 首页分类与SpEL动态缓存切面 一.优化缓存逻辑 百万并发进来,判断 bloomFilter 和缓存中拿,先执行哪个最好?1. 先布隆 ,再缓存 面对攻击 1 好 2. 先缓存 ,再布隆 ...
- Synchonrized介绍
目录 前提知识 Synchronized介绍 Synchronized使用场景 synchronized底层原理 Synchronized的可重入的实现机制 Monitor监视器锁 什么是monito ...
- 通过线程八锁问题融会贯通synchronized关键字的使用
文章目录 1. 一锁 2. 二锁 3. 三锁 4. 四锁 5. 五锁 6. 六锁 7. 七锁 8. 八锁 线程八锁 凯有八门遁甲之术,你晓得线程八锁问题吗?赶紧来看一下吧~ 1. 一锁 class N ...
- 打工人,从 JMM 透析 volatile 与 synchronized 原理
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 在面试.并发编程.一些开源框架中总是会遇到 volatil ...
- Java之戳中痛点之 synchronized 深度解析
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:Json_wangqiang cnblogs.com/Jso ...
- Java线程-线程八锁
synchronized在方法上加锁 加在非静态方法上.锁住的是this对象 class Test{public synchronized void test(){}} 等价于 class Test{ ...
- 面试官最想要的synchronized,你值得拥有
synchronized简介 synchronized 是Java语言的一个关键字,它本身的意思为同步,是用来保证线程安全的,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同 ...
- 【白话设计模式八】命令模式(Command)
为什么80%的码农都做不了架构师?>>> #0 系列目录# 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二] ...
- (八)适配器模式详解
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 各位好,我们本次接着讨论第八 ...
最新文章
- HTML5 Canvas translate与rotate应用
- php错误密码也能登陆账号,php用户登陆代码(限制用户错误登录次数)(1/2
- boost::statechart模块无效图表测试
- java 把文件打包成zip_java 文件流的处理 文件打包成zip
- mysql study_MySQL Study之--MySQL体系结构深入解析
- matlab矩阵运算程序,matlab矩阵运算
- SpringBoot整合Redis(十九)
- 如何优雅地记录操作日志
- 引用动态链接库的原理
- M4A格式的ID3信息提取
- 使用 GOLANG 发送邮件
- C语言求最小公倍数和最大公约数三种算法(经典)
- 关注与粉丝表结构设计及查询
- 阿翔编程学-爱情感言
- 国家计算机二级在线模拟试题,全国计算机二级机试题模拟试题10套(一).pdf
- 14.深入浅出:信号的运算——参考《模拟电子技术基础》清华大学华成英主讲
- 远程ssh连接Linux服务器,隔一段时间就断了
- java.lang.NoClassDefFoundError: com/fasterxml/classmate/TypeResolver
- Android开发从入门到精通(1)
- 如何使用计算机办公软件,如何正确使用电脑办公软件?你肯定不知道这些?