


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、狂翔IT工作室多线程试程选择题以下说法中,正确的一项是A单处理机的电脑上,2个纯种一官半职直不能并发执行单处理机的电脑上,2个线程实际能够并发执行一个线程可以包含多个线程一个进程只能包含一个线程以下说法中错误的一项是A线程就是程序B.线程是一个程序的单个执行流B.以下哪个一个操作不能使线程从等待阻塞状态进入对象阻塞状态D等待阴塞状态下的线程被notify()唤等待阻塞状态下的纯种被interrput()中断等待时间到等待阻塞状态下的线程调用wait()方法以下哪个方法可以使线程从运行状态进入其他阻塞状态AA.A. 以下不是进程组成部分的一项是D代码B.数据C.以下哪一个不属于java线程模型的
2、组成部分DA.以下说法中错误的一项是CJava中的第一个线程都属于某个线程组线程只能在其创建时设置所属的线程组线程创建之后,可以从一个线程组转移到另一个线程组新建的线程默认情况下属于其父线程所属的线程组以下不属于线程组成部分的一项是CA.以下关于JAVA线程模型的说法中,错误的一项是AA.A. 类中被定义以下说法中错误的一项是D一个线程是一个Thread类的实例线程从传递给纯种的Runnable实例run()方法开始执行线程操作的数据来自Runnable实例新建的线程调用start()方法就能立即进入运行状态以下关于Thread类提供的线程控制方法的说法中,错误的一项是D在线程A中执行线程B的
3、join()方法,则线程A等待直到B执行完成线程A通过调用interrupt()方法来中断其阻塞状态假设线程A调用方法isAlive()返回值为true,则说明A正在执行中currentThread()方法返回当前线程的引用1. 以下说法中,错误的一项是A. 对象锁在synchronized()语句执行完之后由持有它的线程返还B. 对象锁在synchronized()语句中出现异常时由持有它的线程返还C. 当持有锁的线程调用了该对象的wait()方法时,线程将释放其持有的锁D. 当持有锁的线程调用了该对象的构造方法时,线程将释放其持有的锁2. 下面的哪一个关键字通宵用来对对象的加锁,从而使得对
4、对象的访问是排他的AA.sirializeBtransientCsynchronizedDstatic3. 以下关于线程的说法以中,正确的一项是DA. 由同一类创建的多个线程都同时运行结束B. 创建线程只能通过继承类C. 调用suspend方法暂停的一个线程将不会再被重新执行D. 程序的执行完毕与超级线程(daemonthreads)无关4. 以下说法中错误的一项是CA. 可串行化的类必须实现Serializable接口B. 可串行化的类中的静态变量可以不被串行化C. private数据访问权限能够限制数据不被串行化D. 对象串行化使用java语言提供的默认机制5. 以下说法中错误的一项是CA
5、. 可串行化的类必须实现Serializable接口B. 可串行化的类中的静态变量可以不被串行化C. private数据访问权限能够限制数据不被串行化D. 对象串行化java语言提供的默认机制6. 以下说法中正确的一项是AA.A. 以下说法中错误的一项是Cjava的纯种体由Thread类的run()方法定义线程创建时已经确定了提供线程体的对象在程序中通过调用Thread类的run()方法创建线程对象java中每一个线程都有自己的名字以下说法中错误的一项是Bsynchronized加锁synchronized加锁syschronized标识以下有关线程的表达中正确的一项是BA.一旦一个线程被创建
6、,它就立即开始运行start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行当一个线程因为抢占机制而停止运行时,它被放在可运行队列的前面.填空题在操作系统中,被称做轻型的进程是线程多线程程序设计的含义是可以将一个程序任务分成几个并行的任务在Java程序中,run()方法的实现有两种方式:实现Runnable接口和_继承Thread类线程5.多个线程并发执行时,各个线程中语句的执行顺序是确定的,但是线程之间的相对执行顺序是不确定的排他锁7. 程序中可能出现一种情况:多个纯种互相等待对方持有的锁,而在得到对方的锁之前都不会释放自己的锁,这就是死锁.8. notyfyAll()方法将对象
7、waitpool中的所有纯种都移到lockpool中。9. 在一个线程中,建议使用标志,而不使用stop()方法终止另一个线程。线程组把一组线程看做一个对象进行统一处理。内核级的实体,而线程是一个用户级的实体数据和代码构成了线程体。13.线程的优先级是在Thread类的常数MIN_PRIORITY和MAXPRIORITY_之间的一个值14. Java的线程高好略是基于优先级15. 处于新建状态的线程可以使用的控制方法是的抢占式调度。start()和stop()。16. 一个进程可以包含多个17. 多任务操作系统运行多个_线程进程来并发地,执行多个任务18.线程是由表示程序运行状态的寄存器组成的
8、19.多线程允许单个程序创建多个并行执行的线程来完成多个子任务20.Thread类中表示最高优先级的常量是getPriority()、而表示最低优先级的常量是setPriority(0.三.简答题1.简述synchronized和java.util.concurrent.locks.Lock的异同?答:主要相同点:Lock能完成synchronized所实现的所有功能主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。对象锁、sleep、wait、notify、
9、notifyAll对象锁:每个对象都有对象锁,当某个线程进入用synchronized定义方法时,就获得了当前类对象方法所属的类的对象的锁,其他线程就不能再获得该锁,直到线程释放该锁。一个类对象有一个对象锁,多个同步方法公用一个对象锁。sleep:是当前线程处于休眠状态,将对cpu的控制权交给其他线程,但不释放当前对象的锁,其他线程可以获得cpu,但不能进入当前线程控制的对象锁。wait:与sleep的区别是,它会释放对象锁,其他线程可以进入该同步块。notify:进入当前同步块的线程调用wait方法变成休眠状态的线程,notify将该线程变成等待状态。notifyAll:进入当前同步块的线程
10、调用wait方法变成休眠状态,notifyAll使所有休眠线程变成等待状态。一个类中有多个同步方法,进入任意一个同步块都将获得该对象锁,由于wait方法使进入同步块的线程休眠,notify只能唤醒所有被休眠线程中的一个,notifyAll可以唤醒所有休眠线程。通常线程的通信通过wait,notifyAll和wait条件来实现。java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?答:有两种实现方法,分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法反对使用stop(),是因为它不安全。它会
11、解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被"挂起”的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。假设标志指出线程应该挂起,便用wait()命其进入等待状态。假设标志指出线程应当恢复
12、,则用一个notify()重新启动线程。3. sleep()和wait()有什么区别?答:sleep是线程类Thread的方法,导致此线程暂停执行指定时间,给执行时机给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法或notifyAll后本线程才进入对象锁定池准备获得对象锁进入运行状态。4. 同步和异步有何异同,在什么情况下分别使用他们?举例说明。答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在
13、读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。5. 启动一个线程是用run()还是start()?答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?答:不能,一个对象的一个synchronized方法只能由一个线程访问。6. 请说出你所知道的线程同步的方法。答:wait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年绿色消费理念传播对消费者绿色能源设备消费的影响报告
- 2025年文化产业园区公共服务平台建设与文化产业数字化转型研究
- 2025年生物质能源分布式能源系统运行风险与防范策略报告
- 2025年影视行业工业化制作流程与质量控制人才培养模式研究报告
- 2025年电动汽车电池热管理技术热管理创新与产业链优化策略报告
- 人教版美术考试题及答案
- 环境经济学与管理科学-洞察及研究
- 民间标准借贷合同范本
- 租赁风冷螺杆合同范本
- 湖面禁止捕鱼合同范本
- 糖尿病肾衰竭疑难病例讨论
- 通信网络应急预案演练计划
- 海边赶海活动方案
- 破拆技术消防课件教学
- 版大学习、大培训、大考试专项行动工作方案
- 2025至2030年中国医用激光光纤行业市场全景分析及产业前景研判报告
- 2025至2030中国灾备市场发展状况及前景趋势研究报告
- DL-T 5022-2023 发电厂土建结构设计规程
- 网络安全防骗秘籍2
- 消防防护装备课件
- 高二下学期《知荣明耻+抵制劣行》主题班会
评论
0/150
提交评论