
JAVA并发
文章平均质量分 50
小布2025
热爱未知,比如清晨和你
展开
-
异步获取有顺序的结果
异步获取有顺序的结果。原创 2022-07-18 11:16:34 · 253 阅读 · 0 评论 -
CompletableFuture使用
CompletableFuture 使用详解原创 2022-06-29 14:13:35 · 250 阅读 · 0 评论 -
线程池工具类.md
ThreadPoolExecutor创建四种常用线程池package com.xiaobu.util;import com.google.common.util.concurrent.ThreadFactoryBuilder;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.concurrent.BasicThreadFactory;import java.util.concurrent.*;/** * @a原创 2022-04-23 22:29:52 · 287 阅读 · 0 评论 -
Future和FutureTask的区别以及使用场景
Future和FutureTask的区别Future 是一个接口,无法直接创建对象,需配合线程池使用.submit()方法返回值Future来保存执行结果;而使用.execute()方法传入Runnable接口无返回值FutureTask 是一个类,可以直接创建对象,其实现了RunnableFuture接口(继承Future接口)Future应用package com.xiaobu.juc;import java.util.concurrent.ExecutionException;imp原创 2022-04-18 20:40:34 · 911 阅读 · 0 评论 -
多个线程操作数组
package Thread;import org.apache.commons.lang3.ArrayUtils;import java.util.ArrayList;import java.util.List;/** * @author xiaobu * @version JDK1.8.0_171 * @date on 2018/10/19 9:13 * @descrp...原创 2018-10-26 11:09:13 · 6167 阅读 · 0 评论 -
JDBC多线程插入大量数据.md
package com.xiaobu.base.util;import com.google.common.util.concurrent.ThreadFactoryBuilder;import lombok.extern.slf4j.Slf4j;import java.sql.Connection;import java.sql.PreparedStatement;import java.util.concurrent.*;import java.util.concurrent.atomi原创 2020-12-08 11:25:18 · 737 阅读 · 0 评论 -
ConcurrentHashSet的使用
方法一、使用google的ConcurrentHashSet首先引入maven依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> </dependency原创 2020-07-07 11:18:49 · 4904 阅读 · 0 评论 -
对synchronized的使用一点浅解
synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所有对象。一、修饰代码块p原创 2020-06-24 15:01:31 · 197 阅读 · 0 评论 -
Java并发| Exchanger和Phaser
Exchangerpackage com.xiaobu.JUC;import java.util.concurrent.Exchanger;import java.util.concurrent.TimeUnit;/** * @author xiaobu * @version JDK1.8.0_171 * @date on 2019/9/27 16:58 * @descrip...原创 2019-10-15 11:59:31 · 287 阅读 · 0 评论 -
Java并发| CountDownLatch、Semaphore和CyclicBarrier
CountDownLatchCountDownLatch是一个计数器闭锁,通过它可以完成类似于阻塞当前线程的功能,即:一个线程或多个线程一直等待,直到其他线程执行的操作完成。当计数器值减至零时,所有因调用await()方法而处于等待状态的线程就会继续往下执行。这种现象只会出现一次,计数器不能被重置。package com.xiaobu.JUC;import java.util.conc...原创 2019-09-27 16:17:10 · 229 阅读 · 0 评论 -
LockSupport中的park() 和 unpark()与Object中的wait()和notify()
package com.demo.Interruput;/** * @author xiaobu * @version JDK1.8.0_171 * @date on 2019/9/25 17:36 * @description 说明:park和wait的区别。wait让线程阻塞前,必须通过synchronized获取同步锁。 */public class WaitTest {...原创 2019-09-26 15:07:34 · 279 阅读 · 0 评论 -
JAVA并发| 记录一次死锁(二)与Locked ownable synchronizers
package com.xiaobu.deadlock;import java.util.concurrent.*;/** * @author xiaobu * @version JDK1.8.0_171 * @date on 2019/8/21 17:16 * @description */public class ExcuteLock { static Exec...原创 2019-08-29 19:09:26 · 6151 阅读 · 0 评论 -
JAVA并发| Thread的常用方法
Thread的六个状态:NEW:初始状态,新建了一个线程对象,但是没有执行start方法。RUNNABLE:运行状态,java中将ready(就绪)和running(运行中)统称"运行"BLOCKED:阻塞,表示线程阻塞于锁。WAITING:进入该状态的线程需要等待其他线程做出一些特定动作(比如通知如:notify(),notifyAll()或者中断如:interrupt())TIME...原创 2019-08-07 16:46:19 · 616 阅读 · 0 评论 -
JAVA并发| 对线程池的一点浅解
线程池的简介 继承 实现 继承ThreadPoolExecutor====>AbstractExecutorService=====>>ExecutorService======>>ExecutorExecutors创建线程池的方式singleThr...原创 2019-06-27 17:39:21 · 172 阅读 · 0 评论 -
JAVA并发| 记录一次死锁
JAVA程序检测死锁测试代码package com.xiaobu.learn.deadlock;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.ThreadFactory;import java.util.concurrent.ThreadPoolExecutor;impor...原创 2019-06-27 10:27:20 · 250 阅读 · 0 评论 -
JAVA并发| 炒菜问题
炒菜问题买菜和买配料先后顺序不一定,但炒菜一定在这两个的后面用CountDownLatch实现package com.xiaobu.learn.concurrent;import com.google.common.util.concurrent.ThreadFactoryBuilder;import java.util.concurrent.*;/** * @author...原创 2019-06-25 17:48:01 · 372 阅读 · 0 评论 -
synchronized实现原理
一、synchronized作用于实例方法。package Synchronized;/** * @author xiaobu * @version JDK1.8.0_171 * @date on 2019/1/8 16:15 * @description V1.0 synchronized作用于实例方法 同一个对象 */public class Demo1 implem...原创 2019-02-18 16:40:13 · 137 阅读 · 0 评论 -
原子操作类AtomicInteger
一、普通的int型自增长测试package AtomicInteger;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * @author xiaobu * @version JDK1.8.0_171 * @date on 2018/8/7 16:15...原创 2019-01-11 11:40:51 · 423 阅读 · 0 评论 -
ArrayBlockingQueue的简单使用
一、Queue一般分为先进先出和后进先出两种先进先出(FIFO):先插入的队列的元素也最先出队列,类似于排队的功能。从某种程度上来说这种队列也体现了一种公平性。后进先出(LIFO):后插入队列的元素最先出队列,这种队列优先处理最近发生的事件。如果生产者产出数据的速度大于消费者消费的速度,并且当生产出来的数据累积到一定程度的时候,那么生产者必须暂停等待一下(阻塞生产者线程),以便等...原创 2018-10-31 11:46:26 · 3174 阅读 · 0 评论