synchronized代码块之间的同步性——T2205

package 对象及变量的并发访问2;

/**
 * synchronized代码块之间的同步性
 *
 *   在使用同步synchronized(this)代码块时,需要注意,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程
 * 对同一个object中所有其他synchronized(this)同步代码块的访问将被阻塞,这说明synchronized使用的对象监视器是同一个,即使用
 * 的锁是同一个。
 */
class ObjectServiceT2250{
    public void serverMethodA(){
        try {
            synchronized (this){
                System.out.println("A begin time="+System.currentTimeMillis());
                Thread.sleep(2000);
                System.out.println("A end time="+System.currentTimeMillis());
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public void serviceMehodB(){
        synchronized (this){
            System.out.println("B begin time="+System.currentTimeMillis());
            System.out.println("B end time="+System.currentTimeMillis());
        }
    }
}

class MyThreadAT2250 extends Thread{
    private ObjectServiceT2250 objectServiceT2250;

    public MyThreadAT2250(ObjectServiceT2250 objectServiceT2250){
        super();
        this.objectServiceT2250=objectServiceT2250;
    }

    @Override
    public void run() {
        super.run();
        objectServiceT2250.serverMethodA();
    }
}

class MyThreadBT2250 extends Thread{
    private ObjectServiceT2250 objectServiceT2250;

    public MyThreadBT2250(ObjectServiceT2250 objectServiceT2250){
        super();
        this.objectServiceT2250=objectServiceT2250;
    }

    @Override
    public void run() {
        super.run();
        objectServiceT2250.serviceMehodB();
    }
}

class RunT2250{
    public RunT2250(){
        ObjectServiceT2250 objectServiceT2250=new ObjectServiceT2250();

        MyThreadAT2250 at2250=new MyThreadAT2250(objectServiceT2250);
        at2250.setName("A");
        at2250.start();

        MyThreadBT2250 bt2250=new MyThreadBT2250(objectServiceT2250);
        bt2250.setName("B");
        bt2250.start();
    }
}
public class T2205 {
    public static void main(String[] args) {
        RunT2250 runT2250=new RunT2250();
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值