永发信息网

JAVA线程:对象加锁,语句未执行?

答案:2  悬赏:30  手机版
解决时间 2021-04-28 19:34

public class ThreadWaitDemo2 {
Object a = new Object();

public void 写文件(String 内容) {
synchronized (a) {
System.out.println("进入写文件函数的线程:" + Thread.currentThread().getName());
try {
a.wait(100);
System.out.println("线程:" + Thread.currentThread().getName()+ " wait了0.1秒");

//==============================================================================
//为什么下面的没有执行?.........
wait(1000 * 60 * 60);
Thread.sleep(1000 * 5);
System.out.println("线程:" + Thread.currentThread().getName()+ " 休息了5秒");
//==============================================================================
} catch (Exception e) {
}
for (int i = 0; i < 内容.length(); i++)
System.out.print(内容.charAt(i));
System.out.println("\n退出写文件函数的线程:"+ Thread.currentThread().getName() + "\n");
}
}

public void 创建两个线程() {
Runnable r = new Runnable() {
public void run() {
写文件("学JAVA其实是件很容易的事,只要你用心学,花时间");
}
};

Thread 线程A = new Thread(r, "线程A");
Thread 线程B = new Thread(r, "线程B");
线程A.start();
线程B.start();
}

public static void main(String arg[]) {
ThreadWaitDemo2 demo = new ThreadWaitDemo2();
demo.创建两个线程();
}
}
上面的打//====处的语句怎么没有执行?请懂线程的详细解释一下.

最佳答案

此时wait调用的是ThreadWaitDemo2实例的wait方法,而此对象并没有被锁住,所以抛出异常,而异常又被吃掉了,所以你看起来象没执行


你在catch段把信息输出一下就清楚了

全部回答
我认为应该是你的Thread.sleep()这抛出了异常,所以没有执行输出语句,而直接打印出了catch中的语句,我觉得因为,同步块的锁是Object的,所以他会将所有的对象都上锁,在执行中当第一个线程进入了同步块中的时候其他线程都进不去,你将它a.wait()等待了,在往下运行的时候又你用了wait()让当前线程等待,但是这是,进入同步块的对象只有第一个进入的那个线程,你没有用,notify()方法去唤醒他,这时线程还在等待中,当你再用Thread.sleep()的时候,就没有当前线程了,所以就抛异常了,然后就没有执行打印语句,所以就跟没执行一样
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现在有终极三国第四十集吗???
设置空间访问权限怎样取消
基督教赞美诗歌是你,赞美朋友的诗
皇轩商务会所在哪里啊,我有事要去这个地方
求都市玄幻小说 不要后宫 种马的.
巅峰对决版本为什么无法更新。急急
赞什么绝什么
QQ密码叫改了,用密保能改回来吗?
我叫王璇璇,今年15岁,想要扩圈不知道怎么写
科比和麦蒂谁更强、
DNF怎么把操作点数搞到70%啊???
热血江湖隐者怎么加点、该学什么技能(一转)
三星I900跟三星B7300相比,那个好一点呢?
坚持多久可以练出腹肌,要练多久才能练出腹肌
是不是每个大学新生都需要将自己档案带去报名
推荐资讯
决心的反义词,决心的近义词是什么?
八彩建材我想知道这个在什么地方
实现经济模式由4P转为4C的前提条件
带有颜色的而字词,而还要在第三位。
下雨时为什么地上会有味道?
鲤鱼仔在哪里啊,我有事要去这个地方
跑100米后大腿酸痛
河北理工大学成考专科的分数线和录取时间什么
的的意思是什么,词林正韵和平水韵的区别 15分
女生送男生一杯子有什么含义?
学好经济学与做相关习题的关系
关于器皿所承受的具体是多少个大气压
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?