JUC
plancer16
终身学习
展开
-
Java8流式计算和分支合并和异步回调
Java8流式计算 函数式接口 四大函数式接口 函数式接口 参数类型 返回类型 用途 Consumer 消费型接口 T void 对类型为T的对象进行操作,包含方法void accept(T t) Supplier 供给型接口 无 T 返回类型为T的对象,包含方法:T get() Function<T,R>函数型接口 T R 对类型为T的对象应用操作,并返回类型为R的结果。包含方法:R apply(T t) Predicate断定型接口 T boolean 确定类型为原创 2020-07-16 08:39:49 · 1005 阅读 · 0 评论 -
线程池
线程池 作用 例子: 10年前单核CPU电脑,假的多线程,像马戏团小丑玩多个球,CPU需要来回切换。 现在是多核电脑,多个线程各自跑在独立的CPU上,不用切换效率高。 线程池的优势: 线程池做的工作住要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。 它的主要特点为:线程复用;控制最大并发数;管理线程 优点: 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的销原创 2020-07-16 08:39:20 · 132 阅读 · 0 评论 -
JUC辅助类&读写锁&阻塞队列
JUC辅助类 CountDownLatch(减少计数) 主线程被阻塞,直到其他线程将计数减到0。 代码 主线程调用countDownLatch的await方法而被阻塞,等待其他线程将初始计数减到0。 package com.atguigu.thread; import java.util.concurrent.CountDownLatch; /** * * @Description: * *让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。 * * CountDownLatch主原创 2020-07-16 08:38:38 · 133 阅读 · 0 评论 -
JUC不安全及处理和callable接口
JUC不安全及处理 证明集合类不安全 举例 错误:java.util.ConcurrentModificationException ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常 称为“并发修改异常”; 不同线程对同一个list进行操作,又要读又要写。 原理 30个线程对list进行写操作 List<String> list = new ArrayList<>(); for (int原创 2020-07-16 08:35:08 · 139 阅读 · 0 评论 -
线程间通信
多线程编程模板 模板上 1、线程操作资源类 2、高内聚,低耦合 模板中 资源类的同步方法按以下方法编写: 1、判断 2、干活 3、通知 生产者消费者 class ShareDataOne//资源类 { private int number = 0;//初始值为零的一个变量 public synchronized void increment() throws InterruptedException { //1判断 if(number !=0 ) { th原创 2020-07-16 08:34:36 · 98 阅读 · 0 评论 -
Lambda表达式
lambda表达式 1、定义: Lambda 表达式在Java 语言中引入了一个新的语法元 素和操作符。这个操作符为 “->” , 该操作符被称 为 Lambda 操作符或剪头操作符。它将 Lambda 分为 两个部分: 左侧:指定了 Lambda 表达式需要的所有参数 右侧:指定了 Lambda 体,即 Lambda 表达式要执行 的功能。 2、要求: 3、写法 复制小括号(形参列表)-> { 具体实现 } 4、函数式接口 如果接口只有一个方法java默认它为函数式接口。 为了正确使用Lamb原创 2020-07-13 20:53:39 · 81 阅读 · 0 评论 -
JUC之Lock
Lock接口多线程编程多线程编程模板Lock定义:Lock有实现:**ReentrantLock可重入锁**线程创建方式实现Runnable的方式 多线程编程 多线程编程模板 多线程编程的通用公式: 线程操作资源类 高内聚,低耦合 实现步骤: 1、创建资源类 2、资源类中创建同步方法,同步代码块 例如:SaleTicket.java class Ticket{ private int number=30; private Lock lock=new ReentrantLock();原创 2020-07-13 20:29:14 · 78 阅读 · 0 评论 -
(一)JUC简介
关于JUC的知识,大致用10多篇文章来总结一下。本篇为第一篇。 JUC是什么 是java.util.concurrent在并发编程中使用的工具类 包括一下三个: juc.class juc.atomic.class juc.locks.class 进程与线程 1、进程、线程是什么 进程:具有独立功能的程序关于某个数据集合的一次运行活动。是基本的分配和执行单元。 线程:在一个进程中可以包含多个线程,至少包含一个线程。线程可以利用进程所有的资源。 进程与线程的区别: 进程是资源分配的基本单原创 2020-06-23 22:41:13 · 194 阅读 · 0 评论