随笔分类 - JUC
【转载】JUC常见面试题:Java线程和操作系统线程有什么区别
摘要:### 【转载】JUC常见面试题:Java线程和操作系统线程有什么区别 整理来自于:https://cloud.tencent.com/developer/article/1818151 #### 1 操作系统的用户态和核心态 在操作系统中,内存通常会被分成`用户空间(User space)`与`内
JUC(八)ThreadLocal
摘要:### ThreadLocal  #### 简介 ThreadLocal提供局部线
JUC(七)分支合并框架
摘要:JUC分支合并框架 简介 Fork/Join可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务的结果合并称为最终的计算结果。 Fork:负责将任务拆分 Join:合并拆分任务 ForkJoinPool:分支合并池,添加分支合并任务,使用get得到计算结果 案例一:实现1+...+100,要
JUC(六)堵塞队列与线程池
摘要:堵塞队列 简介 def:在多线程中实现高效、安全的数据传输,主要是通过一个共享的队列,使得数据能够从一端输入,从另一端输出 当队列是空的,取数据的线程就会被堵塞,直到其他线程往空的队列中添加数据 当队列是满的,放数据的线程就会被堵塞,直到其他线程移除数据 使用堵塞队列能够实现简化线程之间的协作,使用
JUC(五)Callable
摘要:Callable接口 创建线程的几种方式 继承Thread类 实现Runnable接口 通过Callable接口 线程池 使用Runnable接口无法获取到线程返回的结果,因此在jdk1.5后java提供了Callable接口。 Callable接口的特点 需要实现带返回结果的call方法 无法计算
JUC(四)多线程锁
摘要:多线程锁 Synchronized锁的八种情况 以一个手机类为例,包含两个synchronized方法和一个普通方法。 public class Phone { public synchronized void sendSMS() throws InterruptedException { Syst
JUC(三)集合的线程安全
摘要:集合的线程安全 list集合线程不安全演示 List中的add方法没有添加Synchronized,因此是线程不安全的: public boolean add(E e) { modCount++; add(e, elementData, size); return true; } public st
JUC(二)线程间通信
摘要:线程间通信 多线程编程步骤 创建资源类,编写属性和操作方法 在资源中的操作方法 判断 干活 通知 创建多个线程,调用资源类的操作方法 使用while循环进行条件判断,防止虚假唤醒问题 一个加减实例 & 虚假唤醒问题 实现对一个初始值0进行轮流加减操作 public class AddAndSub {
JUC(一)JUC简介与Synchronized和Lock
摘要:1 JUC简介 JUC就是java.util.concurrent的简称,这是一个处理线程的工具包,JDK1.5开始出现的。 进程和线程、管程 进程:系统资源分配的基本单位;它是程序的一次动态执行过程。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 线程:系统资源调度的基本单位;它是一个比进