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(八)相关推荐

  1. 谷粒商城 Day09 首页分类与SpEL动态缓存切面

    Day09 首页分类与SpEL动态缓存切面 一.优化缓存逻辑 百万并发进来,判断 bloomFilter 和缓存中拿,先执行哪个最好?1. 先布隆 ,再缓存 面对攻击 1 好 2. 先缓存 ,再布隆 ...

  2. Synchonrized介绍

    目录 前提知识 Synchronized介绍 Synchronized使用场景 synchronized底层原理 Synchronized的可重入的实现机制 Monitor监视器锁 什么是monito ...

  3. 通过线程八锁问题融会贯通synchronized关键字的使用

    文章目录 1. 一锁 2. 二锁 3. 三锁 4. 四锁 5. 五锁 6. 六锁 7. 七锁 8. 八锁 线程八锁 凯有八门遁甲之术,你晓得线程八锁问题吗?赶紧来看一下吧~ 1. 一锁 class N ...

  4. 打工人,从 JMM 透析 volatile 与 synchronized 原理

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 在面试.并发编程.一些开源框架中总是会遇到 volatil ...

  5. Java之戳中痛点之 synchronized 深度解析

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:Json_wangqiang cnblogs.com/Jso ...

  6. Java线程-线程八锁

    synchronized在方法上加锁 加在非静态方法上.锁住的是this对象 class Test{public synchronized void test(){}} 等价于 class Test{ ...

  7. 面试官最想要的synchronized,你值得拥有

    synchronized简介 synchronized 是Java语言的一个关键字,它本身的意思为同步,是用来保证线程安全的,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同 ...

  8. 【白话设计模式八】命令模式(Command)

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二] ...

  9. (八)适配器模式详解

    作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 各位好,我们本次接着讨论第八 ...

最新文章

  1. HTML5 Canvas translate与rotate应用
  2. php错误密码也能登陆账号,php用户登陆代码(限制用户错误登录次数)(1/2
  3. boost::statechart模块无效图表测试
  4. java 把文件打包成zip_java 文件流的处理 文件打包成zip
  5. mysql study_MySQL Study之--MySQL体系结构深入解析
  6. matlab矩阵运算程序,matlab矩阵运算
  7. SpringBoot整合Redis(十九)
  8. 如何优雅地记录操作日志
  9. 引用动态链接库的原理
  10. M4A格式的ID3信息提取
  11. 使用 GOLANG 发送邮件
  12. C语言求最小公倍数和最大公约数三种算法(经典)
  13. 关注与粉丝表结构设计及查询
  14. 阿翔编程学-爱情感言
  15. 国家计算机二级在线模拟试题,全国计算机二级机试题模拟试题10套(一).pdf
  16. 14.深入浅出:信号的运算——参考《模拟电子技术基础》清华大学华成英主讲
  17. 远程ssh连接Linux服务器,隔一段时间就断了
  18. java.lang.NoClassDefFoundError: com/fasterxml/classmate/TypeResolver
  19. Android开发从入门到精通(1)
  20. 如何使用计算机办公软件,如何正确使用电脑办公软件?你肯定不知道这些?

热门文章

  1. flock SUSE/RHEL
  2. 使用vim的find命令快速打开文件
  3. 信息化基础建设 工作流开发
  4. oracle 查看锁死的表
  5. CCNA笔记:Access Lists
  6. 使括号有效的最少添加
  7. WriteFreely:创建博客,建立社区
  8. 大牛用emacs还是vim_Emacs,Vim还是其他?
  9. Hoodie旨在成为开源最多样化和包容性社区之一
  10. 离线 ocr 开源_在线和离线开始使用开源