随笔分类 - JUC
摘要:一、原理 Fork:把一个复杂任务进行分拆,大事化小 Join:把分拆任务的结果进行合并 ForkJoinPool 分支合并池 类比=> 线程池 ForkJoinTask ForkJoinTask 类比=> FutureTask RecursiveTask 递归任务:继承后可以实现递归(自己调自己)
阅读全文
摘要:一、为什么用线程池 例子:10年前单核CPU电脑,假的多线程,像马戏团小丑玩多个球,CPU需要来回切换。 现在是多核电脑,多个线程各自跑在独立的CPU上,不用切换效率高。 线程池的优势: 线程池做的工作只要是控制运行的线程数量, 处理过程中将任务放入队列 ,然后在线程创建后启动这些任务, 如果线程数
阅读全文
摘要:一、CountDownLatch 减少计数 1、原理 * CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,这些线程会阻塞。 * 其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞), * 当计数器的值变为0时,因await方法
阅读全文
摘要:一、callable接口是什么? 面试题: 获得多线程的方法几种? 正确答案如下: 传统的 是继承thread类和实现runnable接口, java5以后又有实现 callable接口 和 java的线程池获得 函数式接口 这是一个函数式接口,因此可以用作lambda表达式或方法引用的赋值对象 。
阅读全文
摘要:多线程锁的练习题 1、标准访问,先打印短信还是邮件 sendSMS sendEmail 2、停4秒在短信方法内,先打印短信还是邮件 sendSMS sendEmail 3、普通的hello方法,是先打短信还是hello , hello方法是普通方法,短信进程需要四秒 4、现在有两部手机,先打印短信还
阅读全文
摘要:面试题: 两个线程,一个线程打印1-52,另一个打印字母A-Z打印顺序为12A34B...5152Z, 要求用线程间通信 线程间通信:1、生产者+消费者2、通知等待唤醒机制 多线程编程模版中 1、判断 2、干活 3、唤醒 synchronized实现 换成4个线程会导致错误,虚假唤醒 原因:在jav
阅读全文
摘要:Synchronized 1、多线程编程模版上 (1)线程 操作 资源类 (2)高内聚低耦合 2、实现步骤 (1)创建资源类 (2)资源类里创建同步方法,同步代码块 3、例子:卖票 LOCK 接口 锁实现提供了比使用同步方法和语句可以获得的更广泛的锁操作。它们允许更灵活的结构,可能具有非常不同的属性
阅读全文
摘要:一、JUC是什么? java.util.concurrent在并发编程中使用的工具类 进程/线程回顾 1、进程/线程是什么? 进程:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 线程:
阅读全文

浙公网安备 33010602011771号