zoukankan      html  css  js  c++  java
  • 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 结束

  • 相关阅读:
    POJ3040--Allowance(贪心)
    Deep work
    湾区公司上班第一周
    三个现场面试
    协商薪资
    调节情绪,精神愉悦,健康快乐
    Phone interview guide 多说
    Campus Bikes
    降低软件复杂度 和 写注释写总结 2019-10
    某厂在线测试 2019.09.26
  • 原文地址:https://www.cnblogs.com/tsdblogs/p/8760509.html
Copyright © 2011-2022 走看看