------- android培训、java培训、期待与您交流! ----------
一、中断线程
1.stop(); //过时,有bug强制停止
2.如何停止线程?
- 只有一种办法,run方法结束。
- 而run方法,一般由循环控制,只要控制循环就能使线程结束。
- 特殊情况:当线程处于冻结状态,就不会读取到标记,那么现成不会结束。
- 这时,可以使用Thread类中的interrupt()方法,这个方法将处于冻结状态的线程强制恢复运行。这个方法不是结束线程。例如:wait()、sleep()把线程催眠,一砖头下去把线程唤醒,但是受伤(抛出InterruptExceprion)。
- 方法流程:要结束发生中断的线程,首先使用Thread类中的interrupt()方法,这个方法会抛出中断异常,捕获异常的代码中改变标记即可。
二、守护线程setDaemon
- 所谓的后台线程就是指为其他线程服务的线程,也称为守护线程
- 使用方法:线程对象.setDaemon(true);必须在线程开启前。
- 守护线程setDaemon:后台线程(平常所见都是前台线程),开启后和前台线程cpu资源。结束才有区别,前台线程都结束了后台线程自动结束(还要考虑代码的实现)。只要有一个前台线程没结束就不会结束生命周期。
- 通常情况下,由前台线程建立的新线程仍为前台,后台建立的新线程仍为后台。
- JVM中的垃圾回收线程就是典型的后台线程。
三、join()方法
- join:线程加入。
- 使用方法:线程对象.join(); 位置在线程对象start之后。
- 作用:join的线程会申请抢夺cpu执行权,而别的线程冻结直到join线程结束。
- 用途:多线程中,满足条件的话可以临时加入一个线程。
- 其实Join 方法实现是通过wait (小提示:Object 提供的方法)。 当main 线程调用t.join 时候,main 线程会获得线程对象t 的锁 (wait 意味着拿到该对象的锁), 调用该对象的wait( 等待时间) ,直到该对象唤醒main 线程,比如退出后。
- 这就意味着main 线程调用t.join 时,必须能够拿到线程t 对象的锁 ,如果拿不到它是无法wait 的,刚开的例子t.join(1000) 不是说明了main 线程等待1 秒,如果在它等待之前,其他线程获取了t 对象的锁,它等待时间可不就是1 毫秒了。
三、优先级
- 优先级共10级, 通常使用1.5.10,可以使用常量表示 MAX_PRIORITY、 NORM_PRIORITY、MIN_PRIORITY
- 所有线程包括main()都默认5。
- 使用方法:线程对象.setPriority(Thread.MAX_PRIORITY);
- 优先级相对抢CPU高一些。
四、yield()方法
- public static void yield():暂停当前正在执行的线程对象,并执行其他线程。
- 使用方法:Thread.yield();
- 作用:运行到yield()时线程暂停,运行其他线程,多个线程有yield()时,线程交替平均运行
- 用途:
分享到:
相关推荐
day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda表达式 day08_File类、递归 day09_字节流、字符流 day10_缓冲流、转换流、序列化流、Files day11_网络编程 day12_函数式接口 day13_Stream...
NULL 博文链接:https://huangminwen.iteye.com/blog/1157983
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
java.util.concurrent-多线程框架
1、 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、 JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了 Java 程序运 行时所需要的基本条件和许多 Java ...
---【课时1】01-如何理解线程并行与并发.mp4 ---【课时10】10-死锁分析.mp4 ---【课时11】11-线程通讯简介.mp4 ---【课时12】12-进程内线程通讯实现(手写阻塞式队列).mp4 ---【课时2】02-如何理解线程安全与不安全....
4.客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理业务所需的时间,快速客户办理业务所需时间为最小值(提示:办理业务的过程可通过线程Sleep的方式模拟)。各类型客户在其...
java基础--11.多线程-1
多线程实例源码11.rar多线程实例源码11.rar多线程实例源码11.rar多线程实例源码11.rar多线程实例源码11.rar
【IT十八掌徐培成】Java基础第08天-02.多线程-join-daemon-同步.zip
B站狂神说Java的多线程基础篇+juc高级篇代码
【IT十八掌徐培成】Java基础第09天-01.多线程-时间片-死锁演示.zip
【IT十八掌徐培成】Java基础第08天-04.多线程-生产者-消费者.zip
【IT十八掌徐培成】Java基础第08天-01.多线程-yield.zip
【IT十八掌徐培成】Java基础第08天-05.多线程-生产者-消费者2.zip
【IT十八掌徐培成】Java基础第08天-03.多线程-同步代码块-同步方法.zip
【IT十八掌徐培成】Java基础第09天-004.多线程-状态机变换.zip
3. 高频面试题-多线程-8519255158581495.md
基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip ...
线程的基础知识及常见问题.rar线程的基础知识及常见问题.rar线程的基础知识及常见问题.rar