随笔分类 -  JUC

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