共回答了24个问题采纳率:91.7%

interrupt(), stop(), suspend() 都不推荐再用,而是应该让 run 方法正常地退出,如果你打算让它循环,就在 run() 方法内用一个循环(比如 while (indicator) 循环让它在标记位 indicator 改变后退出来)。

通过interrupt 对比那个线程是不是当前线程,这种做法很怪异,不是在 java 中用 == 就可以比较的么 thread == Thread.currentThread() 就是当前线程,再说了,怎么会是当前线程来决定当前线程的命运呢?管理线程应该和工作线程分开才合适。

现在这个代码是先尝优雅地退出,之后,强制退出,这说明作者不确信他写的代码能正常地退出,那么什么情况下不能正常地退出呢,如果是 socket 阻塞了,那我们给一个 timeout,如果是数据库阻塞了,我们允许强制退出,如果不是这种外界资源导致的阻塞,我们的程序就应该保证能正常地退出,否则就是质量问题。另外,interrupt 之后出现的异常完全不应该 e.printStackTrace() 因为你应该确信错误是什么,就直接打印出一段类似“线程未在指定时间内退出,强制终止它”的消息。

interrupt() 之后再 join() 看起来不适合,不过,可能只是为了保险起见。反正看不去哪里不确信。

如果你想等几个线程都完成之后你的主线程才继续,那么代码应该时先把工作线程都启动,全都启动之后再跑循环 workerThreadX.join() 把几个工作线程都调用一次 .join(),(注意先把所有线程启动,再来 join),那些工作线程应该自己根据标记位来退出,或者工作完成了后退出。

1年前

10

java runnable main_Java 线程类问题写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法, * 用for循...相关推荐

  1. (C语言)写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2)

    写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2);设p1指向字符串s1,p2指向字符串s ...

  2. 一个connection对象可以创建一个或一个以上的statement对象_从 0 开始手写一个 Mybatis 框架,三步搞定...

    来自:开源中国,作者:我叫刘半仙 链接:https://my.oschina.net/liughDevelop/blog/1631006 MyBatis框架的核心功能其实不难,无非就是动态代理和jdb ...

  3. Java写的main方法小游戏

    这是去年闲暇时间写的一段代码,那时刚接触java,就想写一个小游戏玩玩,在网上搜索时,大部份人都说java不能写游戏,占内存什么的.不说了上代码 英雄人物类: public class Person ...

  4. 如何根据接口写一个客户端进行发单测试?

    第一步,先写一个jsp页面,定义jsp将form表单提交给SiglePaymentServlet <%@ page language="java" contentType=& ...

  5. 一个简单的c 游戏编程语言,编程达人 c语言写一个简单的小游戏-推箱子

    在学习C语言之后,写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力. 推箱子作为手机上最常见的简单游戏,其代码也相对简单,想法也比较简单,下面为其代码和运行图. /************ ...

  6. 封装一个可以设置微信小程序的本地缓存接口过期时间的方法!

    微信小程序提供的本地缓存api是个好东西,但是没有明确指定缓存有效期,对于某些应用来说,需要改造一下,方法思路很简单,也很常见通用的一个封装函数方法! 实现 新建wxCache.js /*** 本地缓 ...

  7. 有一个一维数组,存10个学生成绩,写一个函数求最高分,最低分,平均分

    由于函数返回一个值,定义全局变量max和min,定义一个函数,函数中改变max和 min的值,返回平均值,最终达到目 #include<stdio.h> float max=0,min=0 ...

  8. 利用有道云笔记接口写一个多端同步桌面便签

    软件下载地址 源码和打包后的软件 软件效果图 功能 1.利用有道云笔记的云端实现多端同步. 2.多个便签切换主题,背景颜色和字体颜色都有6种颜色可选.并可以记录单个便签选择的配色. 3.记录每一个便签 ...

  9. JAVA设计一个fan类_北京信息科技大学java语言程序设计-类和对象

    北京信息科技大学java语言程序设计-类和对象 [实验名称]实验2 类和对象 [实验目的] 1.学习和掌握Java创建对象的方法. 2.学习和掌握通过创建对象.使用类的方法. 3.学习和掌握Java类 ...

最新文章

  1. JavaWeb学习笔记——DOM4J
  2. 剑指offer 面试题6:重建二叉树
  3. Tomcat 处理 HTTP 请求源码分析(上)【转】
  4. python处理pdf提取指定数据_python从PDF中提取数据的示例
  5. html5怎么改为vue_【面试需要Vue全家桶】一文带你看透Vue前端路由
  6. Bokeh,一个超强交互式Python可视化库!
  7. python汉诺塔算法_基于Python的汉诺塔求解中途算法
  8. jQuery插件实现的页面功能介绍引导页效果
  9. textbox根据内容自动调整高度
  10. linux shell运行脚本,Linux shell脚本中调用另一个shell(exec、source、fork)
  11. Codeforces Round #466 (Div. 2): E. Cashback(单调队列+DP)
  12. tyvj p1016 装箱问题( 简单DP 01背包)
  13. c语言 称重系统设计,基于L—PSIII的电子称重系统的设计
  14. xposed框架android9.0,xposed仓库商店下载
  15. ACER 4750G开机卡在LOGO解决办法
  16. python爬虫爬取豆瓣电影为啥内容有缺失-Python爬虫之抓取豆瓣影评数据
  17. IE6升级到IE11兼容性问题和操作手册
  18. Windows Xp SP3 chs 简体中文版下载
  19. ubuntu上安装drcom
  20. 流媒体技术学习笔记之(十七)FFmpeg 3.3《希尔伯特》-新版本的亮点

热门文章

  1. 结构体在多线程中用法
  2. mysql数据库优化的作用_MySQL数据库优化总结
  3. pycharm怎么写yaml_K8S 如何面向 Yaml 编程
  4. java扫描注解_使用Spring Java注释扫描
  5. Java 反射修改类的常量值、静态变量值、属性值
  6. Python2和python3字符编码的区别
  7. java 取pdf表格内容数据_Java 在PDF中添加表格
  8. python list合并_python中如何合并两个列表
  9. ar 微信小程序_微信AR玩法支持实现后,微信小程序会有想象空间吗?
  10. Linux中如何使用mysql和php_hi 感恩节——Linux基础教程之mysql和php