随笔分类 - JUC
摘要:并发编程进阶 再谈线程池 线程池 怎么去创建多线程 - BeaBrick0 - 博客园 (cnblogs.com) 在我们的程序中,多多少少都会用到多线程技术,而我们以往都是使用Thread类来创建一个新的线程: public static void main(String[] args) { Th
阅读全文
摘要:多线程的核心 在前面,我们了解了多线程的底层运作机制,我们终于知道,原来多线程环境下存在着如此之多的问题。在JDK5之前,我们只能选择synchronized关键字来实现锁,而JDK5之后,由于volatile关键字得到了升级(具体功能就是上一章所描述的),所以并发框架包便出现了,相比传统的sync
阅读全文
摘要:ThreadLocal ThreadLocal是什么 感谢: (1 封私信) Java中ThreadLocal的实际用途是啥? - 知乎 (zhihu.com) ThreadLocal使用与原理_敖 丙的博客-CSDN博客_threadlocal使用 ThreadLocal的介绍+经典应用场景 -
阅读全文
摘要:JUC笔记 JUC是java.uitl.concurrent包下的一系列的的并发编程的包。 线程和进程 线程 在操作系统中,线程是比进程更小的能够独立运行的基本单位。同时,它也是CPU调度的基本单位。线程本身基本上不拥有系统资源,只是拥有一些在运行时需要用到的系统资源,例如程序计数器,寄存器和Jav
阅读全文
摘要:线程是什么? 线程被称为轻量级进程,是程序执行的最小单位,它是指在程序执行过程中,能够执行代码的一个执行单位。每个程序程序都至少有一个线程,也即是程序本身。 线程的状态 Java语言定义了5种线程状态,在任意一个时间点,一个线程只能有且只有其中一个状态。这5种状态如下: 新建(New):创建后尚未启
阅读全文
摘要:并发编程中,锁是经常需要用到的,今天我们一起来看下Java中的锁机制:synchronized和lock。 synchronized Synchronized 是Java 并发编程中很重要的关键字,另外一个很重要的是 volatile。Syncronized 的目的是一次只允许一个线程进入由他修饰的
阅读全文
摘要:今天面试的时候,傻逼了,这可是自己以前看过的,面试官问的时候,我整个一脸傻逼。好痛苦,看的好多东西记不住。感觉面试实习又要凉凉😭。 分析 保证被volatile修饰的共享变量对所有线程总是可见的,也就是当一个线程修改了一个被volatile修饰共享变量的值,新值总是可以被其他线程立即得知。 //线
阅读全文
摘要:线程之间为什么要进行通信 线程是操作系统调度的最小单位,有自己的栈(JVM中的虚拟机stack)空间,可以按照既定的代码逐步的执行,但是如果每个线程间都孤立的运行,那就会造资源浪费。所以在现实中,我们需要这些线程间可以按照指定的规则共同完成一件任务,所以这些线程之间就需要互相协调,这个过程被称为线程
阅读全文