导航:首页 > 编程语言 > java方法锁对象锁

java方法锁对象锁

发布时间:2023-08-01 13:56:38

A. 关于java中的synchronized锁定对象

synchronized的锁是针对多线程的,从线程的角度去思考才能真正弄明白。

Java的synchronized使用方法总结
1. 把synchronized当作函数修饰符时
这也就是同步方法,那这时synchronized锁定的是哪个对象呢?它锁定的是调用这个同步方法对象。也就是说,当一个对象P1在不同的线程中执行这个同步方法时,它们之间会形成互斥,达到同步的效果。但是这个对象所属的Class所产生的另一对象P2却可以任意调用这个被加了synchronized关键字的方法。
同步块,示例代码如下:
public void method3(SomeObject so)
{
synchronized(so)
{
//…..
}
}
这时,锁就是so这个对象,谁拿到这个锁谁就可以运行它所控制的那段代码。当有一个明确的对象作为锁时,就可以这样写程序,但当没有明确的对象作为锁,只是想让一段代码同步时,可以创建一个特殊的instance变量(它得是一个对象)来充当锁。
3.将synchronized作用于static 函数,示例代码如下:
Class Foo
{
public synchronized static void methodAAA() // 同步的static 函数
{
//….
}
public void methodBBB()
{
synchronized(Foo.class) // class literal(类名称字面常量)
}
}
代码中的methodBBB()方法是把class literal作为锁的情况,它和同步的static函数产生的效果是一样的,取得的锁很特别,是当前调用这个方法的对象所属的类(Class,而不再是由这个Class产生的某个具体对象了)。

B. java synchronized对静态方法加锁

2所有的非静抄态同步方法用袭的都是同一把锁——实例对象本身,也就是说如果一个实例对象的非静态同步方法获取锁后,该实例对象的其他非静态同步方法必须等待获取锁的方法释放锁后才能获取锁,可是别的实例对象的非静态同步方法因为跟该实例对象的非静态同步方法用的是不同的锁,所以毋须等待该实例对象已获取锁的非静态同步方法释放锁就可以获取他们自己的锁。
而所有的静态同步方法用的也是同一把锁——类对象本身,这两把锁是两个不同的对象,所以静态同步方法与非静态同步方法之间是不会有竞态条件的。但是一旦一个静态同步方法获取锁后,其他的静态同步方法都必须等待该方法释放锁后才能获取锁,而不管是同一个实例对象的静态同步方法之间,还是不同的实例对象的静态同步方法之间,只要它们同一个类的实例对象!

C. java里面的锁机制可以用〔〕把一个类的所有成员都锁起来吗而且一个对象可以挂两个锁吗比如线程A

对象锁一般只锁一个对象吧,对象加了锁后防止多线程同时对同一变量操作报内错, 我遇到过就容是在遍历一个map的时候 有拧一个线程往map里面加东西 就偶然性报错,后面给对象加了锁就没事了。 至于方法加锁 比较直观就是 两个线程不能同时调用这个方法,所以两个方法都加锁 是不同的锁没有影响。 我自己的理解不对请指正

D. java中synchronized函数锁,锁的是什么

修饰方法就代表锁的是此方法体,如 public synchronized int cal(){...} 表示每次访问此方法都只能一个线程访问,其他的要等待访问完了才能进入此方法,这是竞争锁,synchronized(obj)锁的是obj,代表只有获取了此obj锁,才能继续访问,更高级的推荐使用Lock或ReentrainLock。

E. java同步代码块的对象锁是什么

对象锁你是可以自己指定的,你可以把当前类对象传过来,那代码块的对象锁就是这个类对象。在线程间通信的时候,notify只能唤醒拥有相同锁的线程。

阅读全文

与java方法锁对象锁相关的资料

热点内容
ps3文件分割视频 浏览:280
微信图片一键转发软件 浏览:331
如何判断s200plc编程电缆 浏览:691
太原编程培训班哪个好 浏览:171
树叶吹奏教程 浏览:6
社交app带来了哪些社会问题 浏览:394
如何安装爱宝8800数据采集器 浏览:712
文件保存了怎么找不到了 浏览:476
彩票网站怎么辨真假 浏览:840
pr找不到该文件 浏览:963
java移除panel 浏览:354
jsp填充jsp 浏览:166
海关外贸大数据在哪里查 浏览:381
思特奇java笔试题 浏览:121
葫芦侠在手机中的文件名 浏览:813
plc编程应该怎么收钱 浏览:584
c语言中源文件由什么组成 浏览:890
linuxhttpdphp配置文件 浏览:607
拆单数据要怎么保存 浏览:17
mac电脑怎样压缩文件到100m 浏览:645

友情链接