当前位置: 首页 > news >正文

js网站效果东莞建站网站

js网站效果,东莞建站网站,uc浏览器关键词排名优化,题库小程序源码Java中原来在Thread中提供了stop()方法来终止线程#xff0c;但这个方法是不安全的#xff0c;所以一般不建议使用。文本将介绍两种可以优雅的终止线程的方式...!-- more -- 第一种 在JAVA《Java多线程模式》中有一种叫Two-Phase Termination#xff08;两步终止但这个方法是不安全的所以一般不建议使用。文本将介绍两种可以优雅的终止线程的方式... !-- more -- 第一种 在JAVA《Java多线程模式》中有一种叫Two-Phase Termination两步终止的模式可以优雅的终止线程这种模式采用了两个步骤来终止线程所以叫两步终止模式。 先将执行标志位isShutdown 设为false使工作中的线程转变为终止处理中的状态真正去执行终止操作这样的做法可以保证线程的安全性、生命性和响应性。class Worker extends Thread {private volatile boolean isShutdown true;public void shutdown() {System.out.println(接收到关闭通知......);this.isShutdown false;interrupt();}Overridepublic void run() {while (this.isShutdown) {System.out.println(正在工作: System.currentTimeMillis());try {Thread.sleep(1000);} catch (InterruptedException e) {System.out.println(打断正在工作的线程......);}}System.out.println(销毁......);} }public class ThreadClose {public static void main(String[] args) throws InterruptedException {Worker worker new Worker();worker.start();//开始工作Thread.sleep(3 * 1000);worker.shutdown();//优雅关闭} } 运行日志 正在工作:1505828036769 正在工作:1505828037770 正在工作:1505828038771 接收到关闭通知...... 打断正在工作的线程...... 销毁...... 安全性不会在线程正在执行关键区域--Critical Section的时候突然结束掉生命性一定会进行终止处理shutdown()中会调用interrupt()保证即使线程处于sleep或wait状态也可以被立即终止响应性将isShutdown 设为volatile 能保证线程收到终止请求后会尽快开始终止处理。存在的问题针对没有阻塞的情况设置标志变量让线程正常自然死亡和谐但是如果在调用shutdown发生阻塞情况呢 第二种 在 《多线程第一章》的时候介绍过守护线程的作用那么是不是可以通过开启守护线程的方式去监听 功能 1.当工作结束就关闭主线程主线程销毁守护线程也会跟着一同销毁2.如果任务长时间未完成停止工作任务减少开销 编码 1.定义主线程与发送的指令2.在主线程run方法中创建一个守护线程用来执行我们投递的任务3.前面已经介绍过join的功能它可以阻塞主线程等待子线程完成后主线程继续执行4.如果join释放后发送完成指令 private Thread executeService; private volatile boolean finished false; public void execute(Runnable task) {executeService new Thread(() - {Thread runner new Thread(task);runner.setDaemon(true);runner.start();try {runner.join();//前面已经说过join与线程了finished true;} catch (InterruptedException e) {System.out.println(打断正在工作的线程......);}});executeService.start(); } 5.创建listener(long mills)监听工作情况6.监听任务是否完成如果未完成监听当前是否逾期逾期打断线程结束监听 public void listener(long mills) {System.out.println(开启监听......);long currentTime System.currentTimeMillis();while (!finished) {if ((System.currentTimeMillis() - currentTime) mills) {System.out.println(工作耗时过长,开始打断...);executeService.interrupt();//打断线程break;}try {executeService.sleep(100L);//每隔100毫秒检测一次} catch (InterruptedException e) {e.printStackTrace();}} } 7.测试 public static void main(String[] args) {WorkerService service new WorkerService();long start System.currentTimeMillis();service.execute(() - {try {Thread.sleep(3 * 1000);// TODO 模拟加载数据} catch (InterruptedException e) {e.printStackTrace();}});service.listener(4 * 1000);System.out.println(一共耗时 (System.currentTimeMillis() - start)); } listener(4 * 1000) 的运行日志当任务完成会直接退出并不会一直占用 开启监听...... 一共耗时3049 listener(2 * 1000) 的运行日志当任务超时直接打断线程减少资源占用 开启监听...... 工作耗时过长,开始打断... 一共耗时2050 打断正在工作的线程...... - 说点什么 全文代码https://gitee.com/battcn/battcn-concurent/tree/master/Chapter1-1/battcn-thread/src/main/java/com/battcn/chapter4 个人QQ1837307557battcn开源群适合新手391619659微信公众号battcn欢迎调戏
http://www.sadfv.cn/news/95372/

相关文章:

  • 网站开发代码资源类网站怎么做
  • 网站建设合同要交印花吗wordpress文件夹分类
  • 赣州网站制作较好的公司住小帮室内装修图片大全
  • 建设银行网站用户名忘了怎么办如何做竞价网站
  • 免费企业网络推广网站吉林市做网站
  • 德阳建设银行招聘网站接私活 做网站
  • 网站后台添加图片链接请问做卖东西网站怎么
  • 网站推广做的比较好的公司58长春招聘网
  • 佛山网站建设永网wordpress 上传图片错误
  • 商城网站建设代理商宁波十大进出口公司
  • 网站建设服务包含内容php做的网站有
  • 什么是交互式网站开发百度推广需要备案的网站吗
  • 网站设计需要哪些技能优化防疫政策
  • 那曲地区建设局网站公司建设网站的可行性分析
  • 嵊州市住房和建设局网站网站开发时间进度表模板下载
  • 黄冈网站建设的方案服务营销的概念
  • 成都市网站建设服务商浙江百度推广开户
  • 个人网站的域名注册注册集团公司的条件
  • 做网站需要的手续最美情侣高清视频播放
  • 网站开发周期价格企业网站推广方法有哪些
  • 淮南网站建设全包广东网站备案系统
  • 邢台做移动网站公司怎么查网站备案进度
  • 衡水做企业网站门户网站开发要求
  • 江苏省城乡建设局网站首页wordpress安装手机版
  • 网站再就业培训班免费个人简历模板在线编辑
  • 网站排名优化外包公司坊子营销型网站建设
  • 建设官方网站的好处和坏处商标图案大全
  • 如何找到网站的模板页面建设一个地方门户网站
  • p2p网站功能访问同一网站多次
  • 做书app下载网站有哪些内容培训机构