首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下技术说明以及Java程序,将Java程序中(1)~(5)空缺处的语句填写完整。 [说明] 用创建Thread类的子类的方法实现多线程,判断一个数是否是素数。如果是,打印“是素数”,如果不是,则打印“不是素数”,如果没有参数输入,显示“
阅读以下技术说明以及Java程序,将Java程序中(1)~(5)空缺处的语句填写完整。 [说明] 用创建Thread类的子类的方法实现多线程,判断一个数是否是素数。如果是,打印“是素数”,如果不是,则打印“不是素数”,如果没有参数输入,显示“
admin
2010-01-15
74
问题
阅读以下技术说明以及Java程序,将Java程序中(1)~(5)空缺处的语句填写完整。
[说明]
用创建Thread类的子类的方法实现多线程,判断一个数是否是素数。如果是,打印“是素数”,如果不是,则打印“不是素数”,如果没有参数输入,显示“请输入一个命令行参数”。
[Java程序]
选项
答案
这是一道要求读者用创建Thread类的子类的方法实现多线程的编程题。本题的解答思路如下。 (1)多线程是Java语言的一大特性。多线程就是同时存在N个执行体,按几条不同的执行线索共同工作的情况。程序就是一段静态的代码,可以理解为一组计算机命令的集合。进程就是这个程序一次动态的执行过程,从代码的加载到执行完毕的一个过程。线程是一个比进程更小的单位,一个进程在执行的过程中可以产生多个线程,每个线程也是由生产到销毁,可以理解为进程的子集。 线程是有状态和声明周期的,每个Java程序都会有一个缺省的主线程,对于应用程序applcation来说, main()方法就是一个主线程。Java语言使用的是Thread类及其子类的对象来表示线程的。创建一个新线程的生命周期有如下工作状态。 ①新建。当一个Thread类或者其子类的对象被声明并创建时,新的线程对象处于新建状态,此时它已经有了相应的内存空间和其他资源。 ②就绪。处于新建状态的线程被启动后,将进入线程队列排队等待CPU服务,这个时候具备了运行的条件,一旦轮到CPU的时候,就可以脱离创建它的主线程独立开始自己的生命周期。 ③运行。就绪的线程被调度并获得CPU的处理权后进入了运行状态,每一个Thread类及其子类的对象都有一个重要的run()方法,当线程对象被调度执行的时候,它将自动调用本对象的run()方法,从第一句代码开始执行。可见,对线程的操作应该写到run()方法中。 ④阻塞。一个正在执行的线程如果在某种情况下不能执行而进入阻塞状态,此时它不能进入排队状态,只有引起阻塞的原因消失的时候,线程才可以继续进入排队状态等待CPU处理。 ⑤死亡。处于死亡状态的线程不具有继续执行的能力,线程死亡主要的原因是正常运行的线程完成了全部工作,即执行完了run()方法,另外就是被提前强制地终止了。 (2)线程优先级。线程的调度也有优先级别,即同等排列的情况下,优先级高的线程可以被CPU提前处理。Thread类有3个线程优先级的静态常量:MIN-PRIORITY、NORM-PRIORITY和MAX-PRIORITY。其中,MIN-PRIORITY代表最小优先级,默认数值为1;NORM-PRIORITY代表普通优先级,默认数值为 5;MAX-PRIORITY代表最高优先级,默认数值为10。 对于一个新建线程,系统会遵循以下原则为其指定优先级。 ①新建线程将继承创建它的父线程的优先级。父线程是指执行创建新线程对象语句的线程,它可能是程序的主线程,也可能是某一个用户自定义的线程。 ②通常情况下,主线程具有普通优先级。 另外,可以通过调用Thread类的方法setPriority(int a)来修改系统自动设置的线程优先级,使之符合程序的特定需要。 (3)Java编程实现多线程有两种途径,一种是创建自己的线程子类,另一种是实现一个接口Runnable。无论是哪种途径最终都需要使用Thread类及其方法。Thread类有两种构造方法:①publicThread()用来创建一个线程对象;②publicThread(Runnabler)创建线程对象,参数r成为被创建的目标对象。这个目标必须实现Runnbale接口,给出该接口的run()方法的方法体,在方法体中进行操作。用两个构造方法创建完的线程就是一个新建的状态,等待处理。接着启动线程的start()方法,启动线程对象,线程进入排队状态 (即就绪状态)。然后线程操作run()方法,该方法里的内容是被系统处理的内容。如果想使线程进入休眠状态,则可以调用sleep(int millsecond)方法,millsecond是以毫秒为单位的休眠时间。也可调用sleep(int millsecond,int nanosecond)方法,其中nanosecond是以纳秒为单位的休眠时间。终止线程用isAlive()方法来完成。在调用stop()方法终止一个线程之前,最好先用isAlive()方法检查一下该线程是否仍然存活,杀死不存在的线程可能会造成系统错误。 (4)对于本试题所给出的程序是一个Java Application,其中定义了两个类,一个是程序的主类 TestThread,另一个是用户自定义的Thread类的子类primeThread。程序的主线程,即TestThread主类的 main()方法首先根据用户输入的命令行参数创建一个primeThread类的对象,并调用start()方法启动该子线程对象,使之进入就绪状态。主线程首先输出一行信息表示自己在活动,然后调用sleep()方法使自己休眠一段时间以便子线程获取处理器。这是因为主线程创建的子线程与之优先级相同,如果主线程不让出处理器,则子线程只能等待主线程执行完毕才能获得处理器,进入运行状态的子线程将检查一个数值是否是素数并显示出来,然后休眠一段时间以便父线程获得处理器。获得处理器的父线程将显示一行信息表示自己在活动,然后调用sleep()方法使自己也休眠一段时间以便子线程获得处理器。获得处理器的父线程将显示一行信息表示自己在活动然后再休眠。如此循环,每次子线程启动都检查新增的数据是否为素数并打印,直至该数大于其预定的上限。此时子线程从run()方法返回并结束其运行,然后主线程也结束。 (1)空缺处所填写的语句用于等待一个键盘输入,否则就保留屏幕,因此(1)空缺处应填入“system.in.read()”。 m_bContinue是本线程是否继续的标志,(2)空缺处应填入该标志以判断本线程是否继续执行。 由于子线程中所检查的数值大于其预定的上限之前while循环一直都进行,根据(3)空缺处所在的 for循环语句的“i++”和if(number%i==0)判断语句可知,对于检查number是否为素数的(3)空缺处应填入int i=2;i<number。 flag是用来标志该数是否是素数的,如果为真,则表示是素数。number % i==0表示数number不是素数,所以(4)空缺处应填入“flag=false”。 (5)空缺处应填入“flag=true”以恢复flag,准备检查下一个number。
解析
转载请注明原文地址:https://kaotiyun.com/show/H0DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
软件质量保证的主要目标不包括______。A.通过预防、检查与改进来保证软件质量B.保证开发出来的软件和软件开发过程符合相应标准与规程C.收集软件产品、软件过程中存在的不符合项,在项目总结时进行分析D.确保项目组制定的计划、标准和规程适合项目需要,
在结构化分析方法中,利用分层数据流图对系统功能建模。以下关于分层数据流图的叙述中,不正确的是___________(32)。采用数据字典为数据流图中的每个数据流、文件、加工以及组成数据流或文件的数据项进行说明,其条目不包括____________(33)。
有关评估系统效率质量特性,以下论述正确的是______。A.响应时间越长,系统执行效率越高B.响应时间和交易执行吞吐量都是用来衡量系统执行快慢的C.响应时间越短,交易执行吞吐量越大D.系统的访问量越大,交易执行吞吐量越大
Windows系统中,在排除DNS域名解析故障时,需要刷新DNS解析器缓存,使用的命令是______。
下图中,类Product和ConcreteProduct的关系是(45),类ConcreteCreator和ConcreteProduct的关系是(46)。(46)
某公司采用的软件开发过程通过了CMM2认证,表明该公司(30)。
以下测试内容中,属于系统测试的是()。①单元测试②集成测试③安全性测试④可靠性测试⑤兼容性测试⑥可用性测试
在IPv4向IPv6的过渡期间,如果要使得两个IPv6结点可以通过现有的IPv4网络进行通信,则应该使用(27);如果要使得纯IPv6结点可以与纯IPv4结点进行通信,则需要使用(28)。(27)
在软件维护阶段,将专用报表功能改成通用报表功能,以适应将来可能的报表格式变化,则该维护类型为()维护。
软件工程概念的提出是由于______。A.计算技术的发展B.软件危机的出现C.程序设计方法学的影响D.其他工程科学的影响
随机试题
A、脐水平以上静脉血流向上,脐以下血流向下B、脐水平以上静脉血流向下,脐以下血流向上C、腹壁静脉血流全部向上D、腹壁静脉血流全部向下E、以脐为中心血流向四周肝硬化、门脉高压时,腹壁静脉血流方向为()
若采用短程疗法,继之用下列哪种疗法最佳治疗中出现腹胀、肌无力,膝腱反射弱,心电图出现U波。应加用下列哪种药物最好
齿轮样僵硬的主要特征是
A、苏子降气汤B、小青龙汤C、六君子汤D、参苓白术散E、二陈汤痰浊壅肺型肺胀首选方
下列哪项对诊断慢性淋巴细胞性甲状腺炎最有意义?
某市为加强消防安全,准备在城市中心选址安排一个标准消防站,目前有A、B、C三个选址方案(如图3所示)。试对这三个选址方案进行分析,并确定选址方案(不需要考虑用地规模的问题)。
下列情况发生时,脚手架及其地基基础应进行检查和验收的有()。
孤寡老人胡某生前立下遗嘱,写明在其死后存款归其学生王某所有。胡某死后,王某接受了存款,则王某取得存款的方式是()。
DearCarl,MariaandRobert,Iamverypleasedtoannouncethatyourprojecthaswonthisyear’sbusinessaward.Congrat
Thewordlaserstandsfor"lightamplificationbystimulatedemissionofradiation".Tomanypeoplelasersarevery【B1】______,b
最新回复
(
0
)