Java高并发编程详解
文章平均质量分 93
《Java高并发编程详解》、抄书人系列、java多线程相关
九尾小白
可惜从没人陪我演这剧本
展开
-
ThreadLoacl详解(使用+原理+ThreadLoacl造成的内存泄漏)
1.什么是ThreadLocalThreadLocal,线程本地化, 可以私有化存储线程的变量值。可以简单理解为ThreadLoacl能为每个线程提供一个专属于自己的存储空间, 可以在整个线程存活的过程中随时取用,极大地方便了一些逻辑的实现。常见用法包括:存储单个线程上下文信息。比如存储id等;使变量线程安全。变量既然成为了每个线程内部的局部变量,自然就不会存在并发问题了;减少参数传递。比如做一个trace工具,能够输出工程从开始到结束的整个一次处理过程中所有的信息,从而方便debug。由于需要原创 2021-04-02 11:17:34 · 721 阅读 · 0 评论 -
多线程编程辅助类的使用CountDownLatch、CyclicBarrier和Semaphore
上文,我们主要讲了线程池的相关知识,这篇文章主要讲讲那些配合线程池使用的辅助类:CountDownLatch、CyclicBarrier和Semaphore。一.CountDownLatchCountDownLatch 存在于java.util.cucurrent包下,字面意思为倒计数锁。countDownLatch这个类可以使一个线程等待其他线程各自执行完毕后再执行。该功能是通过一个内部计数器的属性实现的 。每当一个线程执行完毕后,调用countDown()方法,计数器的值就-1,当计数器原创 2021-03-04 20:29:29 · 234 阅读 · 1 评论 -
03.线程池的用法ThreadPoolExecutor类的详解
线程使用时我们要创建,不用时又要销毁,这样频繁的使用与销毁线程时会消耗大量的时间与资源,怎样才能避免使用线程时不必频繁的创建与销毁线程呢?这就要用到线程池技术:将多个线程放入一个池子中,由池子去管理这些线程的创建、使用与销毁。ThreadPoolExecutor线程池的核心类: ThreadPoolExecutor 。1.ThreadPoolExecutor的父类继承关系:1.ThreadPoolExecutor继承了AbstractExecutorService (抽象类)2.Abstract原创 2021-03-03 16:52:23 · 307 阅读 · 1 评论 -
02.Thread类的使用,线程类内部API详解
之前我们已经了解到了线程的由来,以及线程的简单创建与线程的生命周期转换,本文将带你进一步了解线程,详细讲解了线程构造函数,属性方法及常用API等原创 2020-12-02 15:41:58 · 163 阅读 · 0 评论 -
01.线程基础知识初识
现代应用程序中,并发是一种经常遇到的场景,在计算机世界中怎么实现并发这一操作的,我们编程如何才能应对高并发的应用场景呢?下面是本文的目录大纲: 一.进程与线程的由来 二.进程与线程的区别 三.java中的线程创建方法 四.线程的生命周期详解原创 2020-11-25 19:35:42 · 201 阅读 · 1 评论