synchronized(this)和synchronized(object)的理解

来源:互联网 发布:sql中having的用法 编辑:程序博客网 时间:2024/05/21 14:53

如果有一块代码(或方法)可能被多个线程同时访问,然后里面操作的数据修改操作可能因为不同线程的操作而不一致的时候,使用synchronized锁定这块代码,确保同时只有一个线程访问这个代码块。也就是说,关键字synchronized可以用在任何类的方法里面,即使该类没有实现Runnable接口或者继承Thread类。


使用this和object的区别:this是对当前类做控制, 即保证当前类是线程安全的, 而对于非线程安全的类在调用时, 为保证其线程安全性可以在调用时使用synchronized(object)确保被调用类的线程安全


理解this和object的区别, 可以借助普通对象池和线程池代码来理解

使用this和object的方式称为同步代码块,对于类中不提供同步方法时可以采用同步代码块

阅读全文
0 0
原创粉丝点击