中易网

JAVA多线程中的synchronized(obj)到底怎么用?

答案:6  悬赏:40  
解决时间 2021-04-22 09:06

它的作用对象都是有哪此?请给兴趣几个例子好吗?谢谢!!!

最佳答案
你可以直接用synchronized来修饰一个方法,如:public void synchronized printXX(){
........
}
这样,只在一个线和进个方法,那么此 “类”(方法所在的类) 就会被"上锁",其它线程不能访问。直到这个线程释放资源为止。
还可以将要实现同步的代码写到一个synchronized块里面,如:synchronized(obj){
......
}
注意,此处的obj是一个对象,你可以Object obj = new Object(); 也可以用this来代替,表示当前对象!
全部回答

synchronized(obj)

俗称对象锁,线程锁!

锁什么,为什么要锁!这和多线程的同步有关系了。

比如说,A线程要对该对象的一个属性进行修改,而又不希望在修改的同时,别的线程也在修改同一个对象,这时候就要给这个对象加锁了。意思说,当A线程在使用该对象(已加锁)的时候,别的线程不能对该对象(已加锁)进行操作,除非等A线程使用完!

线程锁,即操作一个对象时,加入A正在操作,那么B只能等待A操作完后才能进行操作,在单例模式和多线程中用的蛮多.
一楼说的孙鑫的视屏,很好,我看过9遍了,他上面说synchornized()方法很清楚,而且例子也有代码,如果你找不到代码,我可以发给你,你多看几遍就能理解了

synchronized是处理线程同步问题的,其中任意一个线程只要使用这个方法时,直到这个线程使用完后才能用。

下面我做的一个小例子你 参考下:

package bag; import java.applet.*; import java.awt.*; public class Example extends Applet implements Runnable{ shoupiao sp=new shoupiao(); Thread peple1,peple2; TextArea text1; public void init() { peple1=new Thread(this); peple2=new Thread(this); text1=new TextArea(); this.add(text1); } public void start() { peple1.start(); peple2.start(); } public void run() { if(Thread.currentThread()==peple1) { String s=sp.shoupiao(20); text1.append("\n"+s); }else if(Thread.currentThread()==peple2) { String s=sp.shoupiao(5); text1.append("\n"+s); } } } class shoupiao { int wuyuangesu=2; int shiyuangesu=0; int ershiyuangesu=0; String s=null; public synchronized String shoupiao(int money) { if(money==5) { wuyuangesu=wuyuangesu+1; s="给你票"+"钱正好"; }else if(money==20) { while(wuyuangesu<3) { try { wait(); }catch(InterruptedException e) { e.printStackTrace(); } } wuyuangesu=wuyuangesu-3; ershiyuangesu=ershiyuangesu+1; s="给你票给我20找你的钱15"; notifyAll(); } return s; } }

http://www.enet.com.cn/eschool/zhuanti/java/

孙鑫的 我刚看完 第五章 有具体的例子

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
读中专可以考外国大学不
手机为什么开不开了
2015年福建省高考430分可以上什么大学
北京和上海哪里有卖威尔士柯基犬比较好的犬舍
华瑞汽车(潍州路418号金宝乐园南2公里路西)地
地下城江苏一区战法传承棍子能卖多少钱
ck有一只(只想唱歌给你听)我想移到空间中去,
晨光国际酒店-健身房地址有知道的么?有点事
大众凌渡汽车广告音乐叫什么名字!是一位女歌
删除QQ空间日记评论要扣积分么?
玫瑰园(奖品是骗人的!)
我想问下北京那有网吧欢乐行的
名字测试打分我侄女2010年阳历8月11号12点10
庾澄庆为什么叫哈林 庾澄庆家庭背景曝光家世
现在的人怎么都变自私了?
推荐资讯
焦槟榔会长胖吗
一生一世指的是什么动物
星~~空物语
求“上士”的解释
漫游连招!急求!越多越好
改版后的幽魂套站街到底需求暗抗是多少
这是女神赵奕欢吗?
推荐几本书。
木瓜牛奶的好处?
解析免拆洗抽油烟机好不好真的有效果吗
厦门包车去饶平多少公里多少钱
1G或2G的手机存储卡大概多少钱。
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?