问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中synchronized问题

发布网友 发布时间:2022-05-02 04:06

我来回答

3个回答

热心网友 时间:2022-06-28 01:31

synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法,有的话要等正在使用synchronized方法的线程B(或者C 、D)运行完这个方法后再运行此线程A,没有的话,直接运行。它包括两种用法:synchronized 方法和 synchronized 块。

回答你的问题? 这两个方法互相没有影响。如果第一个方法执行到sleep时,它会休眠,之后接着执行;第二个线程中的方法从头执行到尾。

热心网友 时间:2022-06-28 01:31

synchronized是java中表示同步代码快的关键字。可以放在方法修饰符前,比如private synchronized void test(){},也可以放在方法内部,修饰某一段特定的代码。可能你贴出完整的代码会清晰一点,synchronized有一个地方需要注意,就是在给普通方法加锁与给静态方法加锁机制是不一样的。
synchronized在静态方法上表示调用前要获得类的锁,而在非静态方法上表示调用此方法前要获得对象的锁。
public class StaticSynDemo {

private static String a="test";

//等同于方法print2
public synchronized void print1(String b){ //调用前要取得StaticSynDemo实例化后对象的锁
System.out.println(b+a);
}
public void print2(String b){
synchronized (this) {//取得StaticSynDemo实例化后对象的锁
System.out.println(b+a);
}
}
//等同于方法print4
public synchronized static void print3(String b){//调用前要取得StaticSynDemo.class类的锁
System.out.println(b+a);
}
public static void print4(String b){
synchronized (StaticSynDemo.class) { //取得StaticSynDemo.class类的锁
System.out.println(b+a);
}
-----------
a.sleep()休眠,但是这个线程没有结束,也就是说不会释放synchronized里面的东西,具体的还要看你的synchronized锁的范围和.sleep()在的位置而定

热心网友 时间:2022-06-28 01:32

你说的有点糊涂,一个方法内部有sleep,另一个没有?两个线程调哪个方法?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 火锅餐厅厨房有哪些 小火锅厨房设备有哪些 Java怎么使用synchronized声明一个变量 java synchronized 的用法问题 java 中 synchronized 修饰函数时代表什么意思啊? Java的synchronized关键字怎么用? java中synchronized是怎么运用的,详解··· java synchronized关键字? Java怎么使用synchronized声明一个变量? java 中 synchronized 是什么意思 java synchronized的写法 Java 中同步(syncronize)怎么使用 java中,synchronized 的使用? java中的synchronized怎么使用? java中的synchronized()的具体作用 java synchronized 有两种用法?一种是方法上加synchronized ,还有一种是什么? synchronized 加在java方法前面是什么作用 建筑劳务分包合同应由总包、分包中哪一方组织备案? ...甲方要求我们劳务分包备案,劳务分包合同可以和个人签订吗?_百度... 长春市劳务分包企业进场施工前登记备案办理条件是什么? ...合同、专业分包合同、专业承包合同、劳务分包合同的区别联系?什么是... 北京市有政府文件规定分包合同必须备案吗? java中synchronized的参数有什么用? 属龙的人名字中带人字旁意味着什么? 怎样挑选鸡蛋好坏 UE4和3Dmax学习,有什么好的推荐吗? 我外婆80多岁了,还可以吃燕窝吗? 80到90岁老人可以吃燕窝吗?? 83岁老人能吃燕窝吗 老人可以吃燕窝吗? 按照手机里的做古早蛋糕视频能否做成功? 老年人可以吃燕窝吗?有什么好处? 汉口左岸天地怎么样?好不好?值不值得买? 83岁老人可以吃燕窝吗 老人可以服用燕窝吗?怎么吃? 我是黄冈户口,想要在武汉买房,只有买不限购的,哪里 柯基斗臀古早蛋糕怎么做? 八十多岁老人能吃燕窝吗 武汉远城区的房子值得买吗 网红古早蛋糕怎样做,口感更佳,非常的美味? 我爸爸感冒了,80岁了,吃点燕窝是不是好得快? 老年人体质比较差能吃燕窝吗?