![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA线程编程
文章平均质量分 94
JAVA线程编程
Wonder-King
有好奇心,什么都想学一点。
展开
-
链式编程+流式计算 一个小题目
package main.test;import java.util.Arrays;import java.util.List;/** * @Auther: wdq * @Date: 2020/4/21 15:44 * @Description:筛选出编号偶数并且年龄大于25的人,要求把名字大写并逆序输出第一个人。 */class User{ private Strin...原创 2020-04-21 17:11:51 · 304 阅读 · 0 评论 -
ExecutorService线程池+七大参数源码分析+自定义线程池
例子:10年前单核CPU电脑,假的多线程,像马戏团小丑玩多个球,CPU需要来回切换。现在是多核电脑,多个线程各自跑在独立的CPU上,不用切换效率高。线程池的优势:线程池做的工作只要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。它的主要特点为:线程复用;...原创 2020-04-21 11:34:41 · 1542 阅读 · 0 评论 -
BlockingQueue
在多线程领域:所谓堵塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤起。为什么需要Blockingqueue:好处是我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为一切Blockingqueue都给你一手包办了。在concurrent包发布之前,多线程环境下,我们每个程序员需要去自己控制这些细节,还要兼顾效率和线程安全,而这会给我们的程序带来不...原创 2020-04-21 10:46:12 · 104 阅读 · 0 评论 -
ReadWriteLock实例
题目:5个人对一个文件写,5个人人对一个文件读。package main.test;import java.util.HashMap;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.ReadWriteLock;/** * @Auther: wdq * @Date: 2020/4/2...原创 2020-04-21 09:19:01 · 230 阅读 · 0 评论 -
JUC的辅助类--CountDownLatch、CyclicBarrier、Semaphore
CountDownLatch用法题目:6个人同学和班长再教室,让6个同学先出去,班长最后出去然后锁门。package main.test;import java.util.concurrent.CountDownLatch;/** * @Auther: wdq * @Date: 2020/4/20 15:00 * @Description: */public cla...原创 2020-04-20 15:56:18 · 160 阅读 · 0 评论 -
Callable和runnable的区别
1、是否有返回值2、是否需要泛型3、是否抛异常4、落地方法不一样,一个是run,一个是call //创建新类MyThread实现runnable接口class MyThread implements Runnable{ @Override public void run() { }}//新类MyThread2实现callable接口class MyThread2...原创 2020-04-20 14:50:13 · 847 阅读 · 0 评论 -
list线程不安全(举例说明+三种解决)
package main.test;import java.util.ArrayList;import java.util.List;/** * @Auther: wdq * @Date: 2020/4/20 08:57 * @Description: */public class ListnoSafe { public static void main(String...原创 2020-04-20 10:22:52 · 5233 阅读 · 1 评论 -
多线程编程:synchronized和lock的对比
纵向对比:synchronized wait() notifyAll() | | |ReentrantLock condition.await() condition.signalAll() 实例对比:题目:四个人控制一个空调开关...原创 2020-04-19 18:13:25 · 122 阅读 · 0 评论 -
线程的状态
Thread.State原创 2020-04-19 15:02:29 · 103 阅读 · 0 评论 -
多线程之间的交互编程(虚假唤醒)
结论:1、高聚低合前提下,线程操作资源类2、判断/干活/通知3、多线程交互中,必须要防止多线程的虚假唤醒,也即(判断只用while,不能用if)题目:一个空调,两个人,一人关,一人开,交替进行。package main.test;/** * @Auther: wdq * @Date: 2020/4/19 15:53 * @Description: */...原创 2020-04-19 17:25:37 · 248 阅读 · 0 评论