JAVA 多线程的问题
来源:互联网 发布:网络贷款不还会怎么样 编辑:程序博客网 时间:2024/05/01 08:09
原地址:http://www.iteye.com/problems/92028
JAVA 多线程的问题0
- public class ReaderResultextends Thread {
- Calculator c;
- public ReaderResult(Calculator c) {
- this.c = c;
- }
- public void run() {
- synchronized (c) {
- try {
- System.out.println(Thread.currentThread() +"等待计算结果。。。");
- c.wait();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- System.out.println(Thread.currentThread() + "计算结果为:" + c.total);
- }
- }
- public staticvoid main(String[] args) {
- Calculator calculator = new Calculator();
- //启动三个线程,分别获取计算结果
- new ReaderResult(calculator).start();
- new ReaderResult(calculator).start();
- new ReaderResult(calculator).start();
- //启动计算线程
- calculator.start();
- }
- }
- public class Calculatorextends Thread {
- int total;
- public void run() {
- synchronized (this) {
- System.out.println(total);
- for (int i =0; i < 101; i++) {
- total += i;
- }
- System.out.println(total);
- }
- }
- }
就2个简单的类 , 以我的认识,应该在c.wait()这里卡住,也就是说应该不会输出“计算结果为:" ”这些话。 但是为什么他有时候会输出呢?(有时候不会)。 到底是什么破坏了wait 状态? 应该不是start, 因为有时候是先输出System.out.println(total)这里, 然后再打印等待计算结果。。 高人请指点下
5 小时前
12939026
0
001
0
001
- 添加评论
- 关注(1)
1个答案 按时间排序按投票排序
- 00
你将第一个线程类中的同步关键字c换成其他的对象试一下,如object对象。。看能否得到预期的结果?
- java 多线程的问题
- JAVA 多线程的问题
- java多线程的问题
- Java的多线程问题
- Java的多线程问题
- java多线程的同步问题
- Java多线程的同步问题
- Java多线程方面的问题
- Java的多线程问题追根溯源。
- JAVA多线程 <三>单例模式下的多线程问题
- java多线程SOCKET程序的一个问题
- 浅谈Java多线程的同步问题
- 浅谈Java多线程的同步问题
- 浅谈Java多线程的同步问题
- Java多线程同步问题的探究
- 浅谈Java多线程的同步问题
- 浅谈Java多线程的同步问题
- 浅谈Java多线程的同步问题
- linux内核编译详解
- VM workstation 中linux 命令
- Delphi 消除 Method 'Create' hides virtual method of base type warming
- MyEclipse6.5下安装maven插件
- 软连接
- JAVA 多线程的问题
- 【Effective Java】Ch2_创建销毁对象:Item4_通过私有构造函数来强化不可实例化的能力
- 以 .NET 创建 Code 39 条码图片 供水晶报表打印
- 基于 android 数据备份恢复的一种实现
- 服务器未能识别 HTTP 标头 SOAPAction 的值
- SQL select语句执行顺序
- tiny210v2 开发板编译后烧录到开发板上遇到的问题。
- 工作流系列:论流程代理
- 如何学习一门新的编程语言? —— 在学习区刻意练习