java
朕要睡了
这个作者很懒,什么都没留下…
展开
-
ThreadPoolExecutor worker为何要实现AQS
目录简单介绍基本特征实现AQS的原因设计的期望应用的场景2.1关闭线程池2.2调整核心线程数和最大线程数2.3调整线程空闲时间简单介绍引用jdk1.8对于Worker类的官方注释/** * Class Worker mainly maintains interrupt control state for * threads running tasks, along with other minor bookkeeping. * This class op.原创 2021-08-13 23:38:03 · 2232 阅读 · 1 评论 -
SynchronizedCollection的注意点
jdk提供的工具类Collections可以创建线程安全的SynchronizedCollection,如这些实现类的方法基本上都是实用了synchronized获取了集合对象本身,这些方法多是以集合对象调用其api的,但对于集合的迭代,源码明确指出了,必须首先获得集合对象的锁才可以保证线程安全。...原创 2021-06-23 22:45:14 · 452 阅读 · 0 评论 -
Ignite hello world
根据Ignite官网的Hello world 例子,1.直接启动:./ignite.sh,这个命令会使用默认的配置文件,default-config.xml2.书写例子public static void main(String[] args) { IgniteConfiguration config = new IgniteConfiguration(); config.setClientMode(true); config.setPeerCl原创 2020-10-20 20:30:11 · 168 阅读 · 0 评论 -
jvm问题排查案例-cpu飙高
jvm问题排查一直没有自己的思路体系,这次测试环境发现了一个cpu飙高的问题,刚好用来实践一次,纸上得来终觉浅,绝知此事要躬行。最后捋一下思路和过程,记录定位java进程linux, top 命令,发现 23071进程cpu,内存均占比很高排查cpu问题,对于jvm如何排查cpu占用?当然是要找到具体的内部线程查看进程内的线程资源占用使用命令,top -Hp 23071,发现这些线程cpu占用很高,想要知道这些线程的信息,则必须借助jstack命令,而jstack中的线程号是原创 2020-11-21 11:05:15 · 671 阅读 · 1 评论 -
使用spring-data-redis中事务操作的注意事项
场景:使用redis缓存配置数据,采用hash结构缓存数据,考虑并发和一定的事务需求环境springboot 2.2.4,spring-data-redis 2.2.4,redis 5两个注意点使用redismanager查看存储的数据结构现在要进行数据的插入操作,前提是param-param001的值不能改变,且保证隔离性(redis单线程)针对hash的watc...原创 2020-04-02 17:13:39 · 851 阅读 · 1 评论 -
List的迭代器的理解
解释两个问题list的删除操作 list的iterator实现原理使用基本的for删除,如下代码,这种删除没有问题,注意i--补偿, // 使用基本的for循环删除 public static void deleteFor() { List<String> names = new ArrayList<>(); na...原创 2020-02-22 17:30:02 · 232 阅读 · 0 评论 -
java readObject小记
readObejct/writeObject在序列化、反序列化,RMI、RPC等场景中应用广泛。public class IOTest { public static void main(String[] args) throws IOException, ClassNotFoundException { Leaf dog = new Leaf("Kim", "Yel...原创 2019-06-26 14:36:56 · 862 阅读 · 0 评论 -
windows 下使用arthas
工具版本:arthas-packaging-3.0.4-bin使用步骤:(1) 打开cmd as.bat [进程号] 如 as.bat 5552(2)拷贝需要分析的方法 copy refrence, 注意最后的 方法名和类名之间的连接符 可能为#,改为 空格 。trace 包类 方法。enter(3)查看每个方法的耗时,对感兴趣的步骤重复23步骤。忘了回来再看...原创 2018-11-07 17:40:01 · 7953 阅读 · 0 评论 -
springboot kafka消息事务
采用kafkatemplate发送事务消息,需要配置地方1. spring.kafka.producer.transaction-id-prefix=kafka-tran2. spring.kafka.producer.retries=1 --这个必须大于0这个头不为空,会在默认的producerfactory及kafkatemplate初始化中中用到DefaultKafkaPr...原创 2019-08-17 15:42:55 · 2555 阅读 · 0 评论 -
kafka+spring boot 检查topic,分区扩展
属性配置 nacos配置注入@Configurationpublic class MyTopicConfig { private AdminClient adminClient; @Value("${kafka.topic.names}") private String topicNames; @Value("${kafka.topic.partition...原创 2019-08-17 11:51:33 · 2318 阅读 · 0 评论