多线程
文章平均质量分 74
流水伊旧
这个作者很懒,什么都没留下…
展开
-
线程池详解——三大方法、七大参数、四种拒绝策略
池化技术:事先准备好一些资源,有人要用,就来我这里拿,用完之后还给我程序的运行的本质 :占用系统的资源! 池化技术可以优化资源的使用线程池、连接池、内存池、对象池///......创建、销毁十分浪费资源线程池的好处:① 降低资源的消耗② 提高响应的速度③ 方便管理线程池的作用:线程复用、可以控制最大并发数、管理线程三大方法① newSingleThreadExecutor() ExecutorService threadPool = Executors.newSingleThrea原创 2021-03-04 20:11:07 · 336 阅读 · 1 评论 -
CountDownLatch、CyclicBarrier、Semaphore三大常用类详解
CountDownLatch类似于一个减法计数器:CountDownLatch(int count) 构造方法初始一个计数值public class CountDownLatchTest { public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch = new CountDownLatch(6); //计数值为6 for原创 2021-03-02 22:43:42 · 117 阅读 · 0 评论 -
BlockingQueue阻塞队列详解
BlockingQueue 和 SynchronousQueueBlockingQueueBlockingQueue的四组API:① add 和 removeadd(E e) :将指定的元素插入到此队列中,成功则返回true,队列满了插入失败则抛出异常java.lang.IllegalStateException: Queue fullremove() :返回并删除队首元素,如果队列为空删除失败则抛出异常java.util.NoSuchElementExceptionelement() :返原创 2021-03-03 20:31:33 · 374 阅读 · 4 评论 -
多线程详解(二)——Thread类中的常用方法
一. 线程的五大状态新建状态:使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态,它保持这个状态直到程序 start() 这个线程。就绪状态:当线程对象调用了start()方法之后,该线程就进入就绪状态,就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度。运行状态:如果就绪状态的线程获取 CPU 资源,就可以执行 run(),此时线程便处于运行状态,处于运行状态的线程最为复杂,它可以变为阻塞状态、就绪状态和死亡状态。阻塞状态:如果一个线程执行了sl原创 2021-02-19 22:17:47 · 309 阅读 · 1 评论 -
多线程详解(一)——创建多线程
一. 进程与线程:1. 进程:进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。2. 线程:线程是一条执行路径,是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。原创 2021-02-18 22:29:01 · 903 阅读 · 0 评论