多线程
2563711
这个作者很懒,什么都没留下…
展开
-
单例模式线程池的实现
import javax.annotation.PreDestroy;import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicInteger;/** * 自定义线程池 */public class ThreadPool { /** * 自定义线程池 * @return */ private final int CORE_POOL_SIZE = 5; ...原创 2021-04-29 15:02:48 · 443 阅读 · 0 评论 -
多线程学习: 线程组
作用 Java中使用ThreadGroup来表示线程组,它可以对一批线程进行分类管理。对线程组的控管理,即同时控制线程组里面的这一批线程。特性用户创建的所有线程都属于指定线程组,如果没有显示指定属于哪个线程组,那么该线程就属于当前线程组。默认情况下,子线程和父线程处于同一个线程组。线程组创建之后不可改变,只有在创建线程时才能指定其所在的线程组,线程运行中途不能改变它所属的线程组,也就...转载 2020-02-27 19:42:19 · 211 阅读 · 0 评论 -
多线程学习: 异常处理
程序无法捕获线程中的异常: JVM的这种设计源自于这样一种理念:“线程是独立执行的代码片断,线程的问题应该由线程自己来解决,而不要委托到外部。”基于这样的设计理念,在Java中,线程方法的异常(无论是checked还是unchecked exception),都应该在线程代码边界之内(run方法内)进行try catch并处理掉。换句话说,我们不能捕获从线程中逃逸的异常。 一个异常被抛出后...原创 2020-02-27 18:56:14 · 123 阅读 · 0 评论 -
多线程学习: 线程中断
线程中断的方法有1.stop已废弃2.使用共享变量(shared variable)发出信号,告诉线程必须停止正在运行的任务。线程必须周期性的核查这一变量,然后有秩序地中止任务。通过volatile关键字设置开关:private static class Worker extends Thread { private volatile boolean start = true; ...原创 2020-02-26 11:37:50 · 118 阅读 · 0 评论 -
多线程学习:如何改变线程执行顺序
方案1:join方法作用: 把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。 比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。 如在A线程的run方法中调用了,B.join()则A线程获取到当前对象的锁(A的锁),进入等待状态,直到B线程执行完毕,锁释放A线程继续执行分析: 如main方法下有如下代码 T1...原创 2020-02-25 11:31:52 · 288 阅读 · 0 评论 -
多线程学习:java线程优先级
简介 Java提供了一个线程调度器来监控程序启动后进去就绪状态的所有线程。线程调度器通过线程的优先级来决定调度哪些线程执行。一般来说,Java的线程调度器采用时间片轮转算法使多个线程轮转获得CPU的时间片。然而根据实际情况,每个线程的重要程序也不相同,有时候我们想让一些线程优先执行,那么我们可以将他的优先级调高一下,这样它们获得的时间片会多一些。 多个线程处于就绪状态时,若这些线程的优先级...转载 2020-02-24 23:02:21 · 196 阅读 · 0 评论 -
多线程学习:守护线程
守护线程定义 在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用户线程: 是指用户自定义创建的线程,主线程停止,用户线程不会停止 守护线程:为所有非守护线程提供服务的线程;换句话说,任何一个守护线程都是整个JVM中所有非守护线程的保姆;只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作只有当最后一个非守护线...原创 2020-02-24 22:40:34 · 166 阅读 · 0 评论 -
多线程学习:线程创建详解
线程创建详解 线程创建包含线程生命周期中的 新建、就绪、运行 三种状态,相关的api为java.lang.Thread 类 ① 新建状态:就是刚使用new方法,new出来的线程如常见的两种方式 方式一:继承Thread类,并初始化Thread子类继承Thread的子类 ticketWindow1 = new 继承Thread的子类("一号柜台"); 方式二:实现Runnaa...原创 2020-02-23 14:51:41 · 262 阅读 · 2 评论