多线程synchronized 锁XXX.class和锁this的区别记录

Mythread extends Thread

synchronized (Mythread.class) {

    //锁类  即此类的实例拥有共同的锁 即锁共有 @@可以当成是类变量的感觉..所以对象共享

}

synchronized (this) {

    //锁对象  即各实例都有各自的锁   @无意义

}

但如果是实现自runable接口则可以使用this

MyThread implements Runnable

MyThread my = new MyThread();

Thread t = new Thread(my);

Thread t2 = new Thread(my);

Thread t3 = new Thread(my);

因创建线程对象不同  因为runable方式的几条线程是共享一个对象

查阅文档 JDK5以后有Lock锁可代替  可不知因何测后仍有同步问题..可能是方式不对

其实为了避免问题 俩种线程方式都可直接锁 xxx.class 即可


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值