/**
* 计算输出其他线程锁计算的数据
*/
class ThreadA {
public static void main(String[] args) {
ThreadB b = new ThreadB();
//启动计算线程
b.start();
//线程A拥有b对象上的锁。线程为了调用wait()或notify()方法,该线程必须是那个对象锁的拥有者
synchronized (b) {
try {
System.out.println("等待对象b完成计算。。。");
//当前线程A等待
b.wait(); //这里并不是让b去wait,是b的所有者线程wait,但是这个线程的苏醒的条件是b的notify或notifyAll方法的调用而且
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("b对象计算的总和是:" + b.total);
}
}
}
/**
* 计算1+2+3 ... +100的和
*
* @author leizhimin 2008-9-15 13:20:49
*/
class ThreadB extends Thread {
int total;
public void run() {
System.out.println("xxxxxxxxxxxxxxxxxrrrrrrrrrrrrrrrrrrrrrx");
synchronized (this) {
System.out.println("xxxxxxxxxxxxxxxxxx");
for (int i = 0; i < 101; i++) {
total += i;
}
//(完成计算了)唤醒在此对象监视器上等待的单个线程,在本例中线程A被唤醒
notify();
}
}
}
notify():
(唤醒)
(在此对象监视器上)
(等待的)
(单个)
(线程)。
A a = new A();
a.notify();
a是对象监视器
notify()是类A的成员方法
因此wait、notify、notifyAll都属于同一个对象监视器
解决死等问题的途径:
通过某一条件来判断对象监视器是否以及执行了notifyAll()
1)如果已执行,则避免自己被监视器wait()
2)如果没执行,则可以放心大胆的去被wait(),因为迟早都会被notifyAll()
分享到:
相关推荐
循序渐进从JAVA基本概念、核心内容、试题分析、小结和习题等多个环节来组织内容,内容主要包括JAVA语言语法、使用JAVA来创建图形和用户接口、例外处理、垃圾搜索、面向对象、文件输入、输出、事件处理机制、多线程...
大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。 注:本文档根据http://www.importnew.com/12773.html 和...
1- Davik进程linux进程线程之间的区别 2- aidl实现进程间通信 3-Messenger实现进程间通信 4- ContentProvider实现进程间通信 与性能优化相关试题 5-什么是内存泄漏 6-什么是内存溢出 7-什么情况会导致内存泄漏...
Java前后开发面试题,大厂进阶之路,基于JavaGuide、Cyc大佬、牛客上的面经及王道考研相关视频,并改进了其中说法矛盾或含糊之处。 包含计算机网络知识、JavaSE、JVM、Spring、Springboot、SpringCloud、Mybatis、多...
以下是一些常见的计算机操作系统相关问题,供您进行复习: 什么是操作系统?它的主要功能是什么? 解释进程和线程的概念,并说明它们之间的区别。 什么是内存管理?讲解虚拟内存和分页机制的工作原理。 了解进程...
有关软件设计大赛的题目 1. 基于B/S结构的可视化工作流程定制软件开发 2. 基于Web Service 的掌上应用系统 3.新型网络智能机器人交互系统 4. 人脸识别相关核心技术研究及系统实现 5. Web Service实现天气预报模块 6...
网络安全试题 部门: 姓名: 成绩: 第一部分 选择题(50分) 1、Ipsec协议主要应用属于哪一层?[ ] A、应用层 B、传输层 C、Internet层 D、网络层 2、黑客搭线窃听属于哪一类风险? [ ] A、信息存储安全 B、信息传输...
JAVA笔试面试宝典。(java笔试题大集合及答案,EJB方面、Java基础方面、线程编程方面、应聘Java笔试时可能出现问题及其答案、求职笔试大全、中兴华为面试试题及其他相关资料)
本资源主要涉及是计算机与计算机网络考试相关的多选项试题,共包含150道题,答案标注为红色。希望能够帮助更多的粉丝提升相关的知识。下面是部分题目: 1、在Windows中,任务管理器的作用是() A.终止未响应的应用...
相关知识可以自己参考相关资料加上自己的理解.欢迎拍砖 1.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。(15分) 区别主要答两点: a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作...
29.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。 public void test(int i) { lock(this) { if (i>10) { i--; test(i); } } } 答:不会发生死锁,(但...
java面试试题 全面 准确 带答案 coreJava部分 8 1、面向对象的特征有哪些方面? 8 2、作用域public,private,protected,以及不写时的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 ...
该书着重针对.NET技术职位的应聘者,在.NET框架各个技术类别中,选取最常出现在.NET面试中的问题,进行分析和解答,同时解释和剖析和该问题相关的.NET机制原理,帮助读者达到知其然更知其所以然的程度。该书几乎包揽...
2012版最全面试题大全目录: 一. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环?...
│ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司...
│ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司...
│ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司...
│ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司...
│ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司...