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

建设银行办信用卡网站腾讯云建站

建设银行办信用卡网站,腾讯云建站,中国网站优化公司,30天网站建设实录教程Thread 类使用 start 方法,启动一个线程,对于同一个 Thread 对象来说,start 只能调用一次!!! 不怕名字起的长,就怕含义不清楚! 想要启动更多线程,就是得创建新的对象&am…

Thread 类使用 start 方法,启动一个线程,对于同一个 Thread 对象来说,start 只能调用一次!!!

不怕名字起的长,就怕含义不清楚!

想要启动更多线程,就是得创建新的对象!!!

调用 start 创建出新的线程,本质上是 start 会调用 系统的 api,来完成创建线程的操作。

start 和 run 的区别(重点):

终止线程:

不能说是中断一个线程,中断这个词有很多含义,操作系统底层也有中断概念,CPU上/各种设备也有中断概念。

更好的说法是:终止一个线程(让线程 run 方法【入口方法】执行完毕)

main 方法对应的是主线程!

怎么让线程提前结束?

核心就是让 run 方法能够提前就结束 => 取决于 具体代码实现方式

为了让线程结束,引入标志位

package thread;public class ThreadDemo12 {private static boolean isQuit = false;public static void main(String[] args) {// boolean isQuit = false;Thread t = new Thread(() -> {while (!isQuit) {System.out.println("我是一个线程, 工作中!!");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}// 当前是死循环, 给了个错误提示.System.out.println("线程工作完毕!");});t.start();try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}isQuit = true;System.out.println("让 t 线程结束!");}
}

通过上述代码,就可以让线程结束掉。具体线程什么时候结束,取决于在另一个线程中何时修改 isQuit 的值。

main 线程想要让 t 线程结束,大前提一定是 t 线程的代码,对这样的逻辑有所支持。而不是 t 里的代码随便怎么写都能提前结束。如果代码不配合,main 无法让 t 提前结束。

run方法和main方法是两个线程,这两个线程的执行顺序是不确定的!!!

上面的写法不够优雅,Thread 类提供了一种更优雅的选择。让 Thread 对象内置了这个变量。

这个代码本质上就是使用 Thread 实例,内部自带的标志位来代替刚才手动创建的 isQuit 变量了。

如果没有 sleep,interrupt 可以让线程顺利结束,有 sleep 引起了变数!

在执行 sleep 的过程中,调用 interrupt,大概率 sleep 休眠时间还没到,被提前唤醒了。

提前唤醒,会做两件事:

1.抛出 InterruptedException(紧接着就会被 catch 获取到)

2.清除 Thread 对象的 isInterrupted 标志位

通过 interrupt 方法,已经把标志位设为 true 了,但是 sleep 提前唤醒操作,就把标志位又设回 false(此时循环还是会继续执行)

要想让线程结束,只需要在 catch 中加上 break 就行了

这个日志是代码中打出来的,如果不写打印就不会存在了

sleep 清空标志位,是为了给程序员更多的“可操作空间”

前一个代码,写的是sleep(1000),结果现在1000还没到就要终止线程,这就相当于是两个前后矛盾是操作,此时是希望写更多代码来对这样的情况进行具体处理。

此时程序员可以在 catch 语句中,加入一些代码,来做一些处理:

(1)让线程立即结束(加上 break)

(2)让线程不结束,继续执行(不加 break)

(3)让线程执行一些逻辑之后再结束(写一些其他代码,再 break)

等待线程:

http://www.hkea.cn/news/873002/

相关文章:

  • 网站建设国际深圳网络营销课程ppt
  • 网站开发人员需要具备的能力电脑培训班多少费用
  • discuz集成wordpressseo的概念是什么
  • 子网站如何做网站营销方案模板
  • dreamweaver做的网站电商培训班一般多少钱
  • 国外做科研的网站东莞网站设计公司排名
  • 亿唐网不做网站做品牌原因seo网站诊断报告
  • 宝鸡网站建设东东怎么推广软件让别人下载
  • 21dove谁做的的网站百度一下首页设为主页
  • 猪八戒网站建设推广平台排名前十名
  • 广西建设质监站官方网站站长工具seo综合查询可以访问
  • 通用搭建网站教程优化营商环境的意义
  • 网站中加入地图怎样优化网站排名
  • 网站如何被搜索引擎收录地推推广平台
  • 池州做网站公司游戏搜索风云榜
  • 东丽区做网站网站查询平台
  • wordpress什么主题好用seo优化范畴
  • 局域网端口映射做网站西安竞价托管代运营
  • 重庆网站建设设计公司信息ip网站查询服务器
  • 网站积分的作用seo搜索引擎优化就业前景
  • 珠海网站品牌设计公司简介最新国内新闻重大事件
  • 广东专业网站客服软件定制站长统计app下载大全
  • 广东网站建设公司排名磁力帝
  • 胶南网站建设哪家好成都电脑培训班零基础
  • 集团网站建设哪家好网上推广怎么弄?
  • dz网站建设器最近有新病毒出现吗
  • 个人网站制作说明香港旺道旺国际集团
  • 监控做直播网站免费网站seo
  • 网站建设洪塔网站搜索优化排名
  • 专业做设计师品牌网站深圳百度总部