随笔分类 - 多线程
摘要:ThreadLocal底层是个map每次set值的时候把当前线程与值放到里面 ThreadLocal.ThreadLocalMap threadLocals = null; 这种结构在大数据量并发请求时会,会产生内存泄漏。 请求时set进去,正常退出move掉,来不及remove的数据会停留在内存中
阅读全文
摘要:package com.wb.demo.util; import com.graphbuilder.struc.LinkedList; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition;
阅读全文
摘要:tips:解释下主线程等待,子线程执行,如果子线程发生异常会被捕捉,主线程也会发生异常而终止,不会一直阻塞下去 ExecutorService executorService= Executors.newSingleThreadExecutor(); Future<Double> cf = exec
阅读全文
摘要:ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(10, new DiyThreadFactory()); for (int i = 0; i <10 ; i++) { sched
阅读全文
摘要:下面转自某个大佬,一时忘记想不起来了 1、wait()、notify/notifyAll() 方法是Object的本地final方法,无法被重写。 2、wait()使当前线程阻塞,前提是 必须先获得锁,一般配合synchronized 关键字使用,即,一般在synchronized 同步代码块里使用
阅读全文
摘要:1创建,2就绪,3终止 public class ThreadState { public static void main(String[] args) throws InterruptedException { Thread myThread=new Thread(()->{ System.ou
阅读全文
摘要:创建线程的方式:1.继承Thread,2实现Runnable接口,3 实现Callable接口,4Future接口 1. //实现Thread类 public class MyThread extends Thread { @Override public void run() { System.o
阅读全文
摘要:package com.example.demo.config; import java.util.concurrent.locks.StampedLock; //不能在一个线程中反复获取同一个锁 public class T { private double x, y; private final
阅读全文
摘要:思路就是,在大并发下对数据进行修改,读和写同时到来。 比如某国人都人爱看书,一批《金*梅》被广大男女借阅查看, 排队扫码借阅。供不应求,这时A看完了去还书,B去借阅, 系统承受波动,巧的是C也来借。 系统A已经把书换了,书已经和B的设备绑定了,but C来看哎呦我靠还有一本没人借,此时去扫码发现已经
阅读全文
摘要:出处;https://www.liaoxuefeng.com/wiki/1252599548343744/1306581033549858 java线程锁是重入锁:一个线程可以重复获取锁 if (lock.tryLock(1, TimeUnit.SECONDS)) { try { ... } fin
阅读全文
摘要:java线程锁是重入锁:一个线程可以重复获取锁 package com.example.demo.config; public class Thread1 extends Thread{ public void run() { System.out.println("Thread-1: try ge
阅读全文
摘要://1 直接提交队列: // SynchronousQueue:直接传递。对于一个好的默认的工作队列选择是SynchronousQueue,该队列传递任务到线程而不持有它们。内部不存储元素,可认为是容量为 0 的特殊队列,仅作为生产者和消费者的同步媒介。当处理那些内部依赖的任务集合时,这个选择可以避
阅读全文
摘要:索要克隆的类必须实现:Serializable,Cloneable接口import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import
阅读全文