随笔分类 - java
java
摘要:背景: 使用mybatis 批量实时和更新doris时 经常出现连接不上的错误,导致kafka死信队列堆积很多滞后消费 https://doris.apache.org/zh-CN/docs/2.0/ecosystem/doris-streamloader/ package com.jiaoda.s
阅读全文
摘要:阻塞队列 **==ArrayBlockingQueue==**是一个基于数组结构的有界阻塞队列,此队列按FIFO原则对元素进行排序 **==LinkedBlockingQueue==**是一个基于链表结构的阻塞队列,此队列按FIFO排序元素,吞吐量通常要高于ArrayBlockingQueue **
阅读全文
摘要:CountDownLatch 让一些线程堵塞直到另一个线程完成一系列操作后才被唤醒。CountDownLatch 主要有两个方法,当一个或多个线程调用 await 方法时,调用线程会被堵塞,其他线程调用 countDown 方法会将计数减一(调用 countDown 方法的线程不会堵塞),当计数其值
阅读全文
摘要:一、我们知道ArrayList是线程不安全的,请编写一个不安全的案例并给出解决方案 HashSet与ArrayList一致 HashMap HashSet底层是一个HashMap,存储的值放在HashMap的key里,value存储了一个PRESENT的静态Object对象 protected tr
阅读全文
摘要:当一个处理器想要更新某个变量的值时,向总线发出LOCK#信号,此时其他处理器的对该变量的操作请求将被阻塞,发出锁定信号的处理器将独占共享内存,于是更新就是原子性的了。 1、compareAndSet 比较并交换 AtomicInteger.conpareAndSet(int expect, indt
阅读全文
摘要:一.谈谈对volatile的理解 volatile是java虚拟机提供的轻量级的同步机制 保证可见性、不保证原子性、禁止指令重排 1.可见性理解:所有线程存放都是主内存的副本(比如某个变量值为25),t1线程的工作内存发生改变(值25改为37),写会主内存中,及时通知其他线程t2,t3更新最新的主内
阅读全文
摘要://判断a是否小于b private static boolean less(Comparable v, Comparable w) { return v.compareTo(w) < 0; } //两个交换 private static void swap(Comparable arr[], in
阅读全文
摘要:一查看进程线程的方法 1.windows任务管理器可以查看进程和线程数,也可以用来杀死进程tasklist 查看进程taskkill 杀死进程2.linuxps -fe 查看所有进程 ps -fe |grep java 查看java相关进程 ps -fT -p <PID> 查看某个进程(PID)的所
阅读全文
摘要:自己对线程池的理解: coresize 3 maxsize 5 blockLinkedQuenue 3 当提交的任务在<=3时,创建三个线程干活 大于3时,把任务先加入阻塞式队列,当有空闲的核心线程便去执行他们,队列中的任务执行是实际运行的线程在复用执行 如果后面有提交了很多任务,队列都放不下了,就
阅读全文
摘要:什么是线程安全? 为什么有线程安全问题? 当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。 抢火车的例子: 一号窗口和二号窗口同时出售火车第九九张,部分火车票会重复出售。 结论发现,多个线程共享同一个全局成员
阅读全文
摘要:1.线程与进程区别 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。 使用线程可以把
阅读全文