- 博客(6)
- 收藏
- 关注
原创 线程池使用情况监控与调整
线上环境对线程池使用情况的监控与调整方案想象1、背景: 在某些场景下单线程的处理能力会很低,而且还不能充分利用系统资源,所以我们会使用多线程来进行处理。所以呢在实际的项目开发中会定义不同的支持多线程的线程池对象来提升业务并发处理能力。 我们是这样定义线程池对象的(订单系统的真实代码):ThreadPoolExecutor CALLER_RUNS = new ThreadPoolExecutor(50, 1000, 60, TimeUnit.SECONDS, new ArrayBlockingQ
2020-12-30 10:23:07 674
原创 CAS实现:用两个线程交替打印A1B2C3D4E5.....
CAS实现:用两个线程交替打印A1B2C3D4E5…package com.gaiwey.juc.interview.A1B2C3D4;/** * 使用CAS(COMPARE AND SWAP)比较再交换原理实现两个线程之间交替执行 * * @author 嚼不烂菠菜 */public class CASTest { // volatile关键字是重点,它来保证这个变量可以被两个线程随时相互发现 volatile static int i = 0;// 初始值为0 public
2020-07-24 18:30:52 815
原创 synchronized notify wait实现:用两个线程交替打印A1B2C3D4E5.....
package com.gaiwey.juc;/** * 一道面試題:用两个线程交替打印A1B2C3D4E5...... * @author 嚼不烂菠菜 * */public class WaitNotifyTest { public static void main(String[] args) throws Exception { final char[] aC = "ABCDEFGHI".toCharArray(); final char[] a
2020-07-24 15:13:53 289
原创 实现两数交换:在不借助临时变量的前提下用异或运算来实现
在不借助临时变量的前提下实现两数交换的方法package com.gaiwey.algorithm;/** * 两数交换也有别的解法,此处使用二进制异或运算来实现 * * 注:异或运算最简单记就是不进位相加 * * @author 嚼不烂菠菜 * */public class Test { public static void main(String[] args) { // 两数交换 int a = 8, b= 17; System.out.println("交换
2020-07-24 14:54:52 106
原创 数组实现队列:数组长度固定,数组类型随意,我用的int
数组实现队列package com.gaiwey.algorithm;/** * 用数组实现队列:固定长度的数组,数组类型随意,我用的int实现 * 难点在于控制入队和出队的索引 * @author 嚼不烂菠菜 */public class MyQueue { private int[] arr;// 存放数据的数组 private int size; // 数组长度 private int pushindex;// 添加元素的索引位置 private int pollindex;
2020-07-24 11:31:25 165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人