java面试题网

普通会员

257

帖子

9

回复

131

积分

楼主
发表于 2018-03-22 09:27:09 | 查看: 510| 回复: 1

(1)同步代码块:位置比较灵活,锁对象可以任意对象,但必须是同一对象。格式:

            synchronized(对象) { //任意对象都可以。这个对象就是锁。

                             需要被同步的代码;

            }

(2)同步函数:声明方法时加synchronized关键字,同步函数使用的锁是this,静态同步函数的锁是该类的字节码文件对象。

(3)在一个类中只有一个同步,可以使用同步函数。如果有多同步,必须使用同步代码块,来确定不同的锁。所以同步代码块相对灵活一些。



普通会员

257

帖子

9

回复

131

积分
沙发
发表于 2018-11-01 17:12:16

同步方法和同步代码块的区别是什么?

同步方法就是在方法前加关键字synchronized,然后被同步的方法一次只能有一个线程进入,其他线程等待。

而同步代码块则是在方法内部使用大括号使得一个代码块得到同步。同步块会有一个锁定的“对象”。同步代码块的同步范围更加准确。

您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018