请高手帮忙看下,如下程序,我和老师敲的代码一模一样,怎么我用eclipse运行出来的结果却不一样,我的只能 5

请高手帮忙看下!如下程序,我和老师敲的代码一模一样,怎么我用eclipse运行出来的结果却不一样,我的只能看到一个线程,和他的却能看到三个线程,我实在找不出答案,我是个菜... 请高手帮忙看下!如下程序,我和老师敲的代码一模一样,怎么我用eclipse运行出来的结果却不一样,我的只能看到一个线程,和他的却能看到三个线程,我实在找不出答案,我是个菜鸟
/*
* 功能:先用Runnable编写一个程序,模拟一个机票售票系统:有
* 三个售票点,在一天卖出2000张票(注意不是每个点都卖2000张,是一共卖2000张)
*/
package com.test2;

public class Aireticks {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

//这里创建一个窗口
TicketWindow tw1=new TicketWindow();

Thread t1=new Thread(tw1);
Thread t2=new Thread(tw1);
Thread t3=new Thread(tw1);

t1.start();
t2.start();
t3.start();

}

}

//售票窗口类
class TicketWindow implements Runnable{

//一共两千张票
private int nums=2000;
//private Dog myDog=new Dog();

@Override
public void run() {
// TODO Auto-generated method stub

while(true)
{
//出票速度1秒一张

//先判断是否还有票
//认为if else要保证其原子性【同步块码】
synchronized(this)
{
if(nums>0)
{
//显示售票信息
//Thread.currentThread().getName()[当前线程的名字]
System.out.println(Thread.currentThread().getName()+"正在售出第"+nums+"票");

try {
Thread.sleep(100);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
nums--;
}else{

//售票结束
break;
}
}
}
}
}
展开
 我来答
陈学阳
2010-10-13 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2.1万
采纳率:14%
帮助的人:5574万
展开全部
不要费太多力气在过时的DOS中断调用上吧。。。

REGS iregs,oregs...这儿的REG指的是寄存器,当然,这儿都是内存变量,
在调用int86这个函数时,函数将结构的相应项赋给对应名称的寄存器。
然后调用DOS中断int10。。

至于不同的参数调用什么功能,你可以搜索,关键词“DOS中断 int10"...
//-----------------------
int 10h 严格来说,属于“BIOS中断“,

功能号:00H
功能:设置显示模式
入口参数:AH=00H
AL=显示模式
显示模式列表:
显示模式 显示模式属性
00H 40×25 16色 文本
01H 40×25 16色 文本
02H 80×25 16色 文本
04H 320×200 4色
05H 320×200 4色
06H 640×200 2色
07H 80×25 2色 文本
08H 160×200 16色
09H 320×200 16色
0AH 640×200 4色
0BH 保留
0CH 保留
0DH 320×200 16色
0EH 640×200 16色
0FH 640×350 2色(单色)
10H 640×350 4色
11H 640×480 2色
12H 640×480 16色
13H 320×200 256色
-------------------------------
功能号01H
功能:设置光标形状
入口参数: AH=01H
CH低四位=光标的起始行
CL低四位=光标的终止行
出口参数: 无
功能号:02H
功能:用文本坐标下设置光标位置
---------------------------------
。。。
----------------------------------
你代码中iregs.x.ax=0x0100;
AX可以拆成AH和AL
高位AH=0X01,功能号。。
低位AL=0X00
。。。剩下的,你应该看得懂了。

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela
ribbonchen
2010-10-13
知道答主
回答量:32
采纳率:0%
帮助的人:10.9万
展开全部
吧run()方法上面的@override删掉后,在MyEclipse下运行是有3个进程在跑:

Thread-2正在售出第1983票
Thread-0正在售出第1982票
Thread-1正在售出第1981票
Thread-2正在售出第1980票
Thread-0正在售出第1979票
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式