0 0

谁能给我分析下这个程序的运行步骤5

package thread;



public class Test_Sleep extends Thread {
boolean flag = true;

public void run() {
while (flag) {
try {
System.out.println("step    1" );
sleep(50);
if (!this.isAlive()) {
System.out.println("thread is over...");
}else {
System.out.println("step    2" );
System.out.println("step    3" );
System.out.println("step    4" );
System.out.println("step    5" );
System.out.println("step    6" );
System.out.println("step    7" );
System.out.println("step    8" );
System.out.println("step    9" );
System.out.println("step    10" );
}
} catch (InterruptedException e) {
e.printStackTrace();
}

}

}

public static void main(String[] args) {
Test_Sleep t = new Test_Sleep();
t.start();
try {
System.out.println("main before sleep ..." );
Thread.sleep(100);
System.out.println("main after sleep ..." );
t.flag=false;
System.out.println("thread is over...");
} catch (InterruptedException e) {
e.printStackTrace();
}



}

}
=========================================
运行结果是:
main before sleep ...
step    1
step    2
step    3
step    4
step    5
step    6
step    7
step    8
step    9
step    10
step    1
main after sleep ...
thread is over...                                     //下面的为什么还能打印出来?????????????
step    2
step    3
step    4
step    5
step    6
step    7
step    8
step    9
step    10
OO 
2011年1月21日 22:41

1个答案 按时间排序 按投票排序

0 0

采纳的答案

thread is over...不是if (!this.isAlive())这个条件中打出来的。
你把flag设置成false时,已经进入了下一个循环,并且循环没有结束,此时thread仍然是alive的,这个循环走完后,thread才结束,你在t.flag=false后再Thread(100)就可以看到thread结束了,因为循环已经走完了。
在逻辑中不应该使用isAlive进行判断,而应该根据flag的值进行判断。即将条件改为if (!flag)

2011年1月22日 00:32

相关推荐

    Excel数据分析师程序 Python

    在PyCharm中运行《Excel数据分析师》即可进入如图1所示的系统主界面。在该界面中,通过顶部的工具栏可以选择所要进行的操作。 具体的操作步骤如下: (1)导入Excel。单击工具栏中的“导入Excel”按钮,打开文件...

    编译原理实验 语法分析程序

    2 按要求改编总控程序及语法分析程序。  (二)实验内容及步骤 1 选择一种你感兴趣的语法分析方法(算符优先、LL(1)、SLR(1))作为编制语法分析程序的依据. 2仔细阅读PL/O语言,对PL/O语言的功能进行下列扩充...

    单片机中一个程序的运行过程详解

    单片机中一个程序的运行过程分为取指令,分析指令和执行指令几个步骤。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器中的指令操作码...

    编译原理词法分析

    4能构造词法分析程序所识别的各类单词的自动机 (二)实验步骤及内容: 1用高级语言编写程序:该程序能接受所有的标识符。 2用高级语言编写程序:该程序能接受所有的常数(整数和定点小数)。 3用...

    编译原理词法分析器 输入源程序 能生成token序列

    熟悉并实现一个简单的扫描器 2实验内容: 1. 设计扫描器的自动机; 2. 设计翻译、生成Token的算法; 3. 编写代码并上机调试运行通过。 3实验要求: ( 用C语言或C++环境设计并实现实验内容 ) 输入———源程序...

    语法分析TESTparse.c

    步骤如下:先编辑主程序文件TESTmain.c(P230)、词法分析程序TESTscan.c(P218-220)和语法分析程序TESTparse.c(P221-230)这三个文件;然后,新建一个工程;接下来,将上述三个文件加入到该工程中,编译后运行即可。

    5种测量DSP程序运行时间的方法的详细说明及例程

    在DSP的开发中,我们往往需要知道各个代码段所需的运行时间,本文档给出了CCS3.3环境用profile测试代码运行时间的步骤,这个方法虽然简便,但是精确率低。除此之外统计时间还有3种办法,(1)根据C6000编译手册上所说...

    基于MATLAB实现的小波分析改造后,可以分析脑电数据的程序,出现32个导联每个通道的功率谱+使用说明文档.zip

    CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的小波分析改造后,可以分析脑电数据的程序,出现32个导联每个通道的功率谱+使用说明...

    C语言程序设计 谭浩强

    C程序设计(第4版)》是一本公认的学习C语言程序设计的经典教材。...书中的每个例题都按以下几个步骤展开:提出任务—解题思路—编写程序—运行程序—程序分析—有关说明。符合读者认知规律,容易入门与提高。

    基于MATLAB实现的MA的辅助工具源码,基于C需要的朋友可以通过这个软件对MA的程序结构和加密方法进行分析+使用说明文档

    基于MATLAB实现的MA的辅助工具源码,基于C需要的朋友可以通过这个软件对MA的程序结构和加密方法进行分析+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码...

    西南交通大学算法分析与设计hhy2.1预习实验报告

    (2)编写程序,计算n=1000~100000,每次递增1000情况下算法的运行时间,要求将运行时间保存到文件中。文件分为两行,第1行为n的值,用逗号隔开,第2行为对应n的执行时间,以ms为单位,用返号隔开。 (3)(2)得到...

    万能程序升级插件 软件升级

    程序自动升级原理 原理分析: 一般都是主程序配合升级程序完成升级工作的。...大致步骤如下: 1.主程序释放更新程序。...下面我提供一个我做的程序自我更新的插件,可以方便的让你开发的程序具备自我更新功能。

    Python程序设计:数据采集技术.pptx

    应用程序日志一方面记录了系统运行期的各种程序执行状况,一方面也记录了用户的业务处理轨迹。;前端埋点就是应用前端程序,为了进行数据统计和分析而采集数据。;通过网络爬虫获取外部数据也是公司大数据的重要来源之...

    《Java程序设计》课程实验指导书程序代码(答案)(实验七)  

    首先分析程序功能,再通过上机运行验证自己的分析,从而掌握通过Thread类建立多线程的方法。 通过将扩展Thread类建立多线程的方法改为利用Runnable接口的方法,掌握通过Runnable接口建立多线程的方法。

    C 程序指导书及实践指导

    2、 编写并调试一个求(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。 [分析讨论] 1、 针对以上实验内容写出相应的参数传递过程并分析结果。 2、 讨论参数的传递的几种形式。 ...

    基于IP数据报的c++抓包程序

    这个程序利用Winpcap库来捕获IP数据包。...该步骤其实是为了让程序能够利用winpcap这个开发包。这时程序能够正确编译连接了。 3:要让程序能够运行,还必须安装winpcap驱动程序WinPcap_4_0_2.exe。

    基于微信平台的校园二手交易平台小程序(源码 + 说明文档)

    基于微信平台的校园二手交易平台小程序(源码 + 说明文档) 2 关键技术介绍 3 2.1 SSM框架 3 2.2 Java技术及架构介绍 3 2.3 MYSQL数据库 3 2.4微信小程序框架 4 2.5 B/S架构 4 3 需求分析与可行性分析 5 3.1功能...

    基于MATLAB实现的对轴承故障振动信号的小波分析程序,能完成对故障特征频率的提取+使用说明文档.rar

    基于MATLAB实现的对轴承故障振动信号的小波分析程序,能完成对故障特征频率的提取+使用说明文档.rar 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab ...

    基于MATLAB实现的c均值的聚类源程序,在MATLAB下运行+使用说明文档.rar

    CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的c均值的聚类源程序,在MATLAB下运行+使用说明文档.rar 1、代码压缩包内容 主函数:...

    1.2--Linux并发程序设计.doc

    1.2 Linux并发程序设计 计121晏霄122614 (实验估计时间:90分钟) 背景知识 实验目的 工具/准备... 实验内容与步骤 并发程序的设计关键是使用创建进程的系统调用,使一个程序运行时可以生成几个同 时运行的程序,如果程

Global site tag (gtag.js) - Google Analytics