
学习高并发
文章平均质量分 88
张某某啊哈
做一个有梦想的程序猿
展开
-
Java多线程之以7种方式让主线程等待子线程结束
while循环进行轮询Thread类的join方法synchronized锁CountDownLatchFutureBlockingQueueCyclicBarrierLockSupport原创 2022-09-28 16:05:31 · 1716 阅读 · 0 评论 -
java主线程等待所有子线程执行完毕再执行
java主线程等待所有子线程执行完毕在执行转载 2022-09-28 16:01:19 · 6446 阅读 · 1 评论 -
Java8 CompletableFuture 用法全解
Java8 CompletableFuture 用法全解转载 2022-09-27 16:54:48 · 2412 阅读 · 0 评论 -
commons-pool2中GenericObjectPoolConfig的maxTotal、maxIdle、minIdle属性理解
GenericObjectPoolConfigGenericObjectPoolConfig是在GenericObjectPool构造的时候使用的,用来设置pool的maxTotal、maxIdle、minIdle等属性。maxTotal比较好理解,表示pool中对象最多能有多少。主要是在create函数中创建对象时进行判断int localMaxTotal = getMaxTotal();long newCreateCount = createCount.incrementAndGet()原创 2021-03-29 16:39:38 · 3234 阅读 · 0 评论 -
并发更新引发的死锁问题排查
背景知识:MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。MySQL这3种锁的特性可大致归纳如下:表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,..原创 2021-03-25 16:38:19 · 293 阅读 · 0 评论 -
Java创建多线程的8种方式
1、继承Thread类,重写run()方法2、实现Runnable接口,重写run()3、匿名内部类的方式4、带返回值的线程(实现implements Callable<返回值类型>)————以上3种方式,都没有返回值且都无法抛出异常。5、定时器(java.util.Timer)6、线程池的实现(java.util.concurrent.Executor接口)7、Lambda表达式的实现8、Spring实现多线程1、继承Thread类,重写run()方法/..原创 2021-03-24 17:16:21 · 173 阅读 · 0 评论 -
线程创建常用的四种方式
java中创建线程的四种方法以及区别Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。Java可以用四种方式来创建线程,如下所示:1)继承Thread类创建线程2)实现Runnable接口创建线程3)使用Callable和Future创建线程4)使用线程池例如用Executor框架下面让我们分别来看看这四种创建线程的方法。1.继承Thread类创建线程通过继承Thread类来创建并启动多线程的一般步骤如下1】d定义Threa..原创 2021-03-24 16:38:33 · 28728 阅读 · 4 评论 -
Java 线程池 拒绝策略 RejectedExecutionHandler介绍
一、介绍当Executor已经关闭(即执行了executorService.shutdown()方法后),并且Executor将有限边界用于最大线程数量和工作队列容量,且已经饱和时,在方法execute()中提交的新任务将被拒绝。在以上述情况下,execute 方法将调用其 RejectedExecutionHandler 的 RejectedExecutionHandler.rejectedExecution(Java.lang.Runnable, java.util.concurrent.Thr原创 2021-03-24 16:25:30 · 3511 阅读 · 0 评论 -
线程池ThreadPoolExecutor与阻塞队列BlockingQueue应用
1.线程池介绍 JDK5.0以上: java.util.concurrent.ThreadPoolExecutor构造函数签名:public ThreadPoolExecutor( int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, RejectedExecuti.原创 2021-03-09 21:32:44 · 633 阅读 · 0 评论 -
Java创建多线程的8种方式
目录1、继承Thread类,重写run()方法2、实现Runnable接口,重写run()3、匿名内部类的方式4、带返回值的线程(实现implements Callable<返回值类型>)————以上3种方式,都没有返回值且都无法抛出异常。5、定时器(java.util.Timer)6、线程池的实现(java.util.concurrent.Executor接口)7、Lambda表达式的实现8、Spring实现多线程1、继承Thread类,重写run()方法.原创 2021-03-09 21:27:24 · 200 阅读 · 0 评论 -
java 多线程并发实战 摘要(一)
并发简介计算机中加入操作系统来实现多个程序的同时执行,主要是基于以下原因:资源利用率:在某些情况下,程序必须等待某个外部操作执行完成,例如输入操作或输出操作等,而在等待时程序是无法执行其他任何工作。因此,如果在等待的同时可以运行另一个程序,那么将提高资源的利用率。公平性:不同的用户和程序对于计算机上的资源有着相等的使用权。便利性 : 在计算多个任务时,应该编写多个程序,每个程序执行...原创 2022-09-23 09:30:00 · 800 阅读 · 1 评论