随笔分类 - 并发编程
摘要:一、什么是ThreadLocal 声明:本文使用的是JDK 1.8 可以这样理解:ThreadLocal提供了线程的局部变量,每个线程都可以通过set()和get()来对这个局部变量进行操作,但不会和其他线程的局部变量进行冲突,实现了线程的数据隔离。 简要言之:往ThreadLocal中填充的变量属
        阅读全文
                
摘要:一、基础铺垫 首先我们来个例子: public class AtomicMain { public static void main(String[] args) throws InterruptedException { ExecutorService service = Executors.ne
        阅读全文
                
摘要:Java为我们提供了三个同步工具类: CountDownLatch(闭锁) CyclicBarrier(栅栏) Semaphore(信号量) 这几个工具类其实说白了就是为了能够更好控制线程之间的通讯问题。 一、CountDownLatch 1.1CountDownLatch简介 CountDownL
        阅读全文
                
摘要:一、死锁讲解 在Java中使用多线程,就会有可能导致死锁问题。死锁会让程序一直卡住,不再程序往下执行。我们只能通过中止并重启的方式来让程序重新执行。 这是我们非常不愿意看到的一种现象,我们要尽可能避免死锁的情况发生! 造成死锁的原因可以概括成三句话: 当前线程拥有其他线程需要的资源 当前线程等待其他
        阅读全文
                
摘要:一、线程池简介 线程池可以看做是线程的集合。在没有任务时线程处于空闲状态,当请求到来:线程池给这个请求分配一个空闲的线程,任务完成后回到线程池中等待下次任务(而不是销毁)。这样就实现了线程的重用。 我们来看看如果没有使用线程池的情况是这样的: 为每个请求都新开一个线程! public class T
        阅读全文
                
摘要:上一篇已经将Lock锁的基础AQS简单地过了一遍了,因此本篇主要是讲解Lock锁主要的两个子类: ReentrantLock ReentrantReadWriteLock 一、ReentrantLock锁 比synchronized更有伸缩性(灵活) 支持公平锁(是相对公平的) 使用时最标准用法是在
        阅读全文
                
摘要:一、AQS是什么? 首先我们来普及一下juc是什么:juc其实就是包的缩写(java.util.concurrnt) 不要被人家唬到了,以为juc是什么一个牛逼的东西。其实指的是包而已 我们可以发现lock包下有三个抽象的类: AbstractOwnableSynchronizer Abstract
        阅读全文
                
摘要:Java多线程加锁机制,有两种: Synchronized 显式Lock 接下来就讲一下这两种加锁方式。 一、synchronized锁 1.1synchronized锁是什么? synchronized是Java的一个关键字,它能够将代码块(方法)锁起来 它使用起来是非常简单的,只要在代码块(方法
        阅读全文
                
摘要:一、使用多线程遇到的问题 1.1线程安全问题 多线程主要是为了提高我们应用程序的使用率。但同时,这会给我们带来很多安全问题 如果我们在单线程中以“顺序”(串行-->独占)的方式执行代码是没有任何问题的。但是到了多线程的环境下(并行),如果没有设计和控制得好,就会给我们带来很多意想不到的状况,也就是线
        阅读全文
                
摘要:Thread线程类API 声明本文使用的是JDK1.8 实现多线程从本质上都是由Thread类来进行操作的~我们来看看Thread类一些重要的知识点。Thread这个类很大,不可能整个把它看下来,只能看一些常见的、重要的方法。 1.1设置线程名 我们在使用多线程的时候,想要查看线程名是很简单的,调用
        阅读全文
                
摘要:一、什么是多线程 1.1介绍进程 讲到线程,又不得不提进程了~ 进程我们估计是很了解的了,在windows下打开任务管理器,可以发现我们在操作系统上运行的程序都是进程: 进程的定义: 进程是程序的一次执行,进程是一个程序及其数据在处理机上顺序执行时所发生的活动,进程是具有独立功能的程序在一个数据集合
        阅读全文
                
                    
                
浙公网安备 33010602011771号