- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线程编程方面
60、java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()
方法为何不推荐使用?
答:有两种实现方法,分别是继承Thread类与实现Runnable接口
用synchronized关键字修饰同步方法
反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种
不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。
suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这
之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被挂起的线程恢复运行。
对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死
锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动
还是挂起。若标志指出线程应该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢
复,则用一个notify()重新启动线程。
61、sleep() 和wait() 有什么区别?
答:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,
但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的
等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准
备获得对象锁进入运行状态。
62、同步和异步有何异同,在什么情况下分别使用他们?举例说明。
答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数
据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的
返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
63、启动一个线程是用run()还是start()?
答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着
它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标
志来停止一个线程。
64、当一个线程进入一个对象的一个synchronized 方法后,其它线程是否可进入此对象的其
它方法?
答:不能,一个对象的一个synchronized方法只能由一个线程访问。
65、请说出你所知道的线程同步的方法。
答:wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉Interrupt
edException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某
一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让
它们竞争。
66、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
67、线程的基本概念、线程的基本状态以及状态之间的关系
答:线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,
也就是程序本身。
Java中的线程有四种状态分别是:运行、就绪、挂起、结束
68、简述synchronized 和java.util.concurrent.locks.Lock 的异同?
答:主要相同点:Lock能完成synchronized所实现的所有功能
主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释
放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。
Jsp 方面
69、forward 和redirect 的区别
答:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取
过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以
它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉
您可能关注的文档
最近下载
- 《机械装调技术》电子教案 模块五 整机调试与运行任务一 齿轮啮合齿侧间隙的检测与调整.doc VIP
- 青花瓷 完美演奏版 周杰伦 钢琴谱 数字 简谱.pdf VIP
- 第38届物理竞赛决赛实验考试答题纸 .pdf VIP
- 现代医药物流交易的配送中心建设项目可行性研究报告.doc VIP
- 2025-2026学年初中生物学人教版2024八年级上册-人教版2024教学设计合集.docx
- 养生馆卫生管理制度(3篇).docx
- 健康管理师课件第一章--健康管理概论.ppt VIP
- JBT 4333.4-2013 厢式压滤机和板框压滤机 第4部分:隔膜滤板.pdf VIP
- 电信反诈骗演讲稿模板5篇.docx VIP
- 基于光纤布拉格光栅的温度测量系统设计与应用.docx VIP
文档评论(0)