版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、意外退出线程后自动重启的实现方法自动重启故障相信大家都遇到过,原因也有很多,跟系统,硬件或者外界因素都有关。下面小编就为大家带来一篇Java线程监听,意外退出线程后自动重启的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧Java线程监听,意外退出线程后自动重启前一天写了一个微博爬行程序,主要工作原理就是每隔2分钟爬行一次微博,获取某 N个关注朋友微博数量,然后将其保存 起来,2分钟之后再次爬行,再取 其微博数量,与2分钟前保存的 微博数量比较,如果数量增加,说明该好友在此2分钟之内发布微博, 如果数量减少,则是删除微博。最后将爬行结果发送到指定手机上,
2、作为通知!今天看微博时发现自己关注的朋友发布了微博, 然而自己手 机却没有收到报警消息,查看爬行日志发现,在凌晨6点钟时,公司 网络曾经断网,导致网络堵 塞,程序在爬行的时候抛出网络异常Unkn ow nH ostException,此时线程就已经死掉,猝死。为解决此问题,现有如下需求:线程死掉之后会自动重启。常规解决办法有2种:1,开启另外一个线程,监听爬行线程,使用线程之间的通 信,一般是消费者模式,如果爬行线程死掉之后,监听线程会收到通 知,但是如果监听线程先死掉,那么系统也就挂了 !2,使用心跳机制,爬行线程每隔一段时间往另一服务器进程发送数据包,如果服务器进程长时间没有收到心跳包,则
3、说明爬行线程已经死机!两种方法都有合适的使用范围,但是对于监听线程猝死这种 情况,个人觉得是使用观察者模式比较合适!现说明一下观察者模式。观察者模式:定义对象之间的一种一对多的依赖关系,当对象的状态发生改变时,所有依赖于它的对象都得到通知并且被自动更 新。观察者模式在JDK中有现成的实现,java.util.Obserable ,如何进行监听线程,请看例子:被监听的线程类:package cn. std.test;import java.util.Observable;import cn. std.util.DateUtil;public classRun Threadexte ndsObse
4、rvableimpleme nts Runn able/此方法一经调用,立马可以通知观察者,在本例中是监听线程publicvoid doBus in ess()if(true)super.setCha nged();3e.pri ntStackTrace();Overridepublicvoid run() intc = 0;while(true) /模拟线程运行一段时间之后退出System.out.pri ntl n(&qu ot;R uning-"+c+&qu ot;"+DateUtil.getStdDateTime();tryThrea
5、d.sleep(2000);catch (In terruptedExcepti on e) doBus in ess();break;C+;/模拟抛出异常tryif(c= 4)Strin gstr = n ull;str.le ngth();此处将会抛出空指针异常5un .addObserver(liste n);e.pri ntStackTrace();doBusiness();在抛出异常时调用,通知观察者,让其重启 线程break;/异常抛出之后,一定要跳出循环,保证将线程送进 地狱publicstatic void main( Stri ng args) Run Threadr un
6、二 new Run Thread();Liste ner liste n 二 new Liste ner();n ewThread(ru n).start();/run. doBus in ess();被监听的线程需要继承Observable类,继承之后轻松变身 为被观察者doBus in ess方法,此处可以加上你的业务处理内容,接 下来是Listenerpackage cn. std.test;import java.util.Observable;import java.util.Observer;public class Liste ner impleme nts Observer7p
7、ublicvoid update(Observable o, Object arg) System.out.pri ntln(&qu ot;R un Thread死机 ");Run Threadr un 二 new Run Thread();run .addObserver(this);n ewThread(ru n).start();System.out.pri ntln(&qu ot;R un Thread重启 ");很简单,只要实现Observer接口,实现其update方法,在方法内部重启线程补充:电脑总是自动重启怎么办1、右击“我的
8、电脑”,选择“属性”项2、在打开的系统属性窗口中选择“高级系统设置”项进入。3、在打开的“系统属性”窗口中,切换至“高级”选择卡, 然后点击“系统和故障恢复 设置”按钮。4、在打开的窗口中取消勾选“自动重启启动”项并按确认 即可。5、当电脑在使用的过程中产生蓝屏时,我们就可以进入“系 统日志”管理器中查看产生系统失败的根源啦。 打开“运行”对话框, 输入命令“ eventvwr.msc ”即可查看日志信息,从中定位系统产生 失败的原因。6、当然,我们也可以通过禁用某些开机项来尝试修复系统。 打开“运行”对话框,输入命令“ msconfig ”进入“系统配置实用 程序”界面,勾选“常规”选项卡下
9、的“诊断启动”选项。7、还有一种修复计算机蓝屏或重启故障的方法,就是在电 脑启动时按“ F8”进入系统故障菜单,从中选择“安全模式”进入或12“最后一次正确的配置”项进入系统,将及有可能修复系统。8、当然,如果以上方法均不能解决问题,那么建议您还是重新安装一下系统,毕竟安装系统所耗费的时间相对修复所用时间要少许多。一劳永逸之事才是王道。相关阅读:电脑自动重启方法方法一:1、打开控制面板-管理工具-计划任务程序2、创建基本任务,名称栏目,输入“定时重启”,下一步;3、在窗口里,有每天、每周、每月、一次各种选择,这里小诚选择一次,这次执行完就失效,您可以根据自己的情况进行选择哈,点击下一步;4、设置重启的日期、时间点,下一步;5、选择启动程序,下一步;6、在打开页面里,点击浏览,找到C;WindowsSystem32Shutdown.exe,点击打开;7、在添加参数栏目里输入“ -r ” (重启),进行下一步8、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江大学宁波国际科创中心未来计算技术创新中心工程师招聘备考题库及参考答案详解(夺分金卷)
- 2026河北省中医院招聘劳务派遣人员43人备考题库含答案详解(轻巧夺冠)
- 2026湖南省交通科学研究院有限公司招聘37人备考题库附答案详解(巩固)
- 2026合肥源创新人才发展有限公司社会招聘5人备考题库附参考答案详解(轻巧夺冠)
- 2026洞头海霞青年营度假酒店招聘5人备考题库(浙江)及答案详解(名师系列)
- 某石材厂开采运输制度
- 2026广西玉林市北流市妇幼保健院招聘编外人员43人备考题库附答案详解(a卷)
- 2026重庆市永川区永昌街道卧龙凼社区招聘全日制公益性岗位1人备考题库及答案详解【考点梳理】
- 2026西藏拉萨发展集团有限公司招聘46人备考题库及答案详解(新)
- 2026建设社区卫生服务中心(嘉峪关市老年病医院)招聘7人备考题库(甘肃)附答案详解
- 访谈节目策划方案
- 古诗词大全10000首
- 【中考真题】2025年河北省中考地理试卷(附答案)
- 肌肉注射讲课课件
- 2026年南阳科技职业学院单招职业适应性考试必刷测试卷完美版
- 医药耗材采购突出问题专项整治工作方案(2025-2026年)
- 国开2025年《社会教育及管理》形考作业1-3终考答案
- 物流园员工安全培训课件
- 委托设计的知识产权合同7篇
- 《诗经·七月》课件
- 食品销售安全知识培训课件
评论
0/150
提交评论