随笔分类 -  java并发

摘要:public class TestThreadLocal { // 使用ThreadLocal 子线程获取不到父线程的值 // public static ThreadLocal<String> threadLocal = new ThreadLocal<>(); // 使用InheritableT 阅读全文
posted @ 2021-08-14 10:20 fly_bk 阅读(94) 评论(0) 推荐(0) 编辑
摘要:```java /** * 插入排序 */ public class InsertSort { public static void main(String[] args){ int[] arr = {5,5,2,6,3,4}; int length = arr.length; int a,b,key; for (a = 1; a =0&&arr[b]>key){ arr[b+1] = arr[b 阅读全文
posted @ 2019-09-09 13:47 fly_bk 阅读(150) 评论(0) 推荐(0) 编辑
摘要:java / 奇偶交换排序 / public class EventSort { public static void main(String[] args){ Integer[] arr = {5,5,2,6,3,4}; for (Integer integer : arr) { System.o 阅读全文
posted @ 2019-09-07 13:48 fly_bk 阅读(623) 评论(0) 推荐(0) 编辑
摘要:java / 并行流水线 求 (B+C) B/2 Plus:A = B + C Multiply:D = A B Div:D = D / 2 i = i (i+j)/2 / public class PStreamMain { public static void main(String[] arg 阅读全文
posted @ 2019-09-06 17:00 fly_bk 阅读(246) 评论(0) 推荐(0) 编辑
摘要:```java import java.util.Map; import java.util.concurrent.ConcurrentSkipListMap; /** * 跳表的使用 */ public class ConcurrentSkipListMapDemo { public static void main(String[] args){ ConcurrentSkipListMap m 阅读全文
posted @ 2019-09-05 15:45 fly_bk 阅读(706) 评论(0) 推荐(0) 编辑
摘要:```java import java.util.ArrayList; import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; import java.util.concurrent.Recu 阅读全文
posted @ 2019-09-05 14:10 fly_bk 阅读(438) 评论(0) 推荐(0) 编辑
摘要:```java import java.util.concurrent.*; public class DivTask implements Runnable{ int a,b; public DivTask(int a, int b) { this.a = a; this.b = b; } @Override public void run() { double re = a/b; System 阅读全文
posted @ 2019-09-05 11:12 fly_bk 阅读(625) 评论(0) 推荐(0) 编辑
摘要:```java import java.util.concurrent. ; / ThreadPoolExecutor扩展 / public class ExtThreadPool { public static class MyTask implements Runnable{ public St 阅读全文
posted @ 2019-09-05 10:04 fly_bk 阅读(203) 评论(0) 推荐(0) 编辑
摘要:```java import java.util.concurrent. ; / 自定义线程创建 / public class RejectThreadPoolDemo2 { public static class MyTask implements Runnable{ @Override publ 阅读全文
posted @ 2019-09-05 10:02 fly_bk 阅读(251) 评论(0) 推荐(0) 编辑
摘要:```java import java.util.concurrent. ; / | 小于corePoolSize 分配线程执行 任务提交 | | 成功 等待执行 | 大于corePoolSize 提交到等待队列 | | 达到maximumPoolSize线程,提交失败 拒绝执行 | 失败 提交线程 阅读全文
posted @ 2019-09-05 09:12 fly_bk 阅读(2598) 评论(0) 推荐(0) 编辑
摘要:```java import java.util.concurrent.locks.LockSupport; /** * 线程阻塞工具类:LockSupport * 可以在线程内任意位置让线程阻塞 */ public class LockSupportDemo { public static Object o = new Object(); static ChangeObjectThread t1 阅读全文
posted @ 2019-09-04 16:08 fly_bk 阅读(166) 评论(0) 推荐(0) 编辑
摘要:解决并发情况下的容器线程安全问题的。给多线程环境准备一个线程安全的容器对象。 线程安全的容器对象: Vector, Hashtable。线程安全容器对象,都是使用synchronized方法实现的。 concurrent包中的同步容器,大多数是使用系统底层技术实现的线程安全。类似native。Jav 阅读全文
posted @ 2019-09-04 11:14 fly_bk 阅读(161) 评论(0) 推荐(0) 编辑
摘要:Java锁的深度化 悲观锁、乐观锁、排他锁 场景 `当多个请求同时操作数据库时,首先将订单状态改为已支付,在金额加上200,在同时并发场景查询条件下,会造成重复通知。 SQL: Update ` 悲观锁与乐观锁 悲观锁: ` 悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时加上排他锁。 阅读全文
posted @ 2019-09-03 17:11 fly_bk 阅读(191) 评论(0) 推荐(0) 编辑
摘要:线程池创建方式jdk1.5 Java通过Executors(jdk1.5并发包)提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。若有空闲线程可以复用,则优先使用复用的线程,所有线程在当前任务 阅读全文
posted @ 2019-09-03 14:44 fly_bk 阅读(524) 评论(0) 推荐(0) 编辑
摘要:案例二: 阅读全文
posted @ 2019-09-03 10:38 fly_bk 阅读(399) 评论(0) 推荐(0) 编辑
摘要:```java import java.util.concurrent.ConcurrentLinkedDeque; /** * ConcurrentLinkedQueue:是一个适用于高并发场景下的队列,通过无锁的方式,实现 * 了高并发状态下的高性能,通常ConcurrentLinkedQueue性能好于BlockingQueue.它 * 是一个基于链接节点的无界线程安全队列。该... 阅读全文
posted @ 2019-09-03 09:57 fly_bk 阅读(472) 评论(0) 推荐(0) 编辑
摘要:```java import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class Res { public String userSex; public String userName; public boolean flag = false; Lock loc 阅读全文
posted @ 2019-09-02 14:26 fly_bk 阅读(148) 评论(0) 推荐(0) 编辑
摘要:wait与sleep区别? 对于sleep()方法,该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。 sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。 在调用sleep()方法的过 阅读全文
posted @ 2019-09-02 13:56 fly_bk 阅读(7631) 评论(0) 推荐(0) 编辑
摘要:```java import java.util.concurrent.atomic.AtomicInteger; / 原子操作的类 atomic / public class VolatileDemo { static AtomicInteger i = new AtomicInteger(0); 阅读全文
posted @ 2019-09-01 16:06 fly_bk 阅读(296) 评论(0) 推荐(0) 编辑
摘要:```java /** * 买票问题 */ public class ThreadTrain1 implements Runnable { private int count = 10; private static Object o = new Object(); @Override public void run() { while (count>0){ try { Thread.sleep( 阅读全文
posted @ 2019-08-31 15:51 fly_bk 阅读(227) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示