- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 SpringBoot @Autowired 类,导入yml设置参数类,但导入了 null 解决
读取application.yml中配置的参数
2022-08-23 09:47:18 363 1
原创 Java NIO Socket
当官当大官,收礼不受累。一、收礼初级版商人给小吏送礼,偷偷摸摸,小吏拿到礼品后,走人;下一个商人到后,再送礼到下一个小吏。小吏必须到位,必须拿到礼品。(server开辟一个线程处理一个client的请求)二、收礼升级版商人(client) 给大官(server) 送礼,先到官邸(ServerSocketChannel) 送礼到管家(selector),管家再拿礼品给大官一 一过目。...
2022-01-21 17:25:14 206
原创 java BlockingQueue 阻塞队列,起来干活,排队唤醒
以 ArrayBlockingQueue为例:队列满或空后,条件阻塞:Conditionput 1、满后,notFull await(), 作为 firstWaiter 加入条件队列,线程阻塞 park 。 4、unpark后, firstWaiter作为 同步队列 头结点后第一个节点开始执行。 take 2、取后,signal,将 firstWaiter 转移到 同步队列。 3、空后,notEmpty await(), 唤醒 unpark 同步队列中...
2022-01-05 10:30:37 302
原创 ReentrantReadWriteLock 读写分家,读等写;写等写;多个一起读
读写分别计数c000000000000000000000000000000001、writeLock: c && 65536 代表EXCLUSIVE(独占)2、readLock: c >>16 代表 share(共享)以上计算结果为 w, 只要 w > 0,表明有写锁。/*** 一、writeLock*/ 1、 /** Returns the number of exclusive holds represen...
2021-12-21 16:03:11 78
原创 ReentrantLock 老三先歇会,等早到的老二先开动
多个线程同时 请求 lock时, 第二个一直自旋,尝试获取。其余的park,等老大完事,unpark老二,老二开动,老三再自旋等。 //一、加锁 public final void acquire(int arg) { if (!tryAcquire(arg) && acquireQueued(addWaiter(Node.EXCLUSIVE), arg)) selfInterrupt();
2021-12-21 15:59:06 156
原创 CyclicBarrier 先给我等着,到时一起上
1、线程先塞到 condition 队列中,然后 最后一个线程到达时,同步到 AQS 队列中,逐一唤醒。加入 AQS的队列后,队列中第二个节点一直自旋尝试唤醒后续节点。 1、 public CyclicBarrier(int parties, Runnable barrierAction) { if (parties <= 0) throw new IllegalArgumentException(); this.p...
2021-12-17 15:58:53 74
原创 悟了 CountDownLatch 这样唤醒队列中线程
CountDownLatch2、node设置 preNode的 ws为 -1 ;然后 唤醒队列中线程,清除队列节点。后人把前人的 ws 改为 -1 ,就是为了到时候 前人能把 后人叫醒!(自己付出努力,只为自己能醒过来!)1、唤醒队列中线程,清除队列节点。2、node设置 preNode的 ws为 -1...
2021-12-16 15:11:43 537
原创 matlab 2015 升级 log4j2详细步骤
一、java jar包如下:disruptor-3.3.4.jargeronimo-j2ee-management_1.1_spec-1.0.1.jargeronimo-jms_1.1_spec-1.1.1.jarhawtbuf-1.11.jarlog4j-api-2.13.0.jarlog4j-core-2.13.0.jarlog4j-over-slf4j-1.7.26.jarlog4j-slf4j-impl-2.13.0.jarslf4j-api-1.7.26.jar二、编写Lo
2020-06-29 15:12:04 295
原创 接口多实现,通过调用默认实现类,执行真正实现类方法。
1、接口A,默认实现类D,真正调用类T。初始化接口A, 实例化D,执行T。2、接口A:public interface Human { public void act() throws Exception; }默认实现类D:public class GeneralHuman implements Human{ ...
2019-09-06 10:25:36 978
原创 红黑二叉树左转、右转
简易记法:1、左转:转P,P的右子Y带其右子R插入到P和其父PP间,Y的左子LR变成P的右子2、右转:转P,P的左子Y带其左子L插入到P和其父PP间,Y的右子RL变成P的左子就像女子转嫁,带走一个。另一个留给另一半。
2017-03-01 10:40:26 491
原创 红黑二叉树性质口诀
红黑二叉树性质口诀父红子黑 如果一个结点是红的,那么它的俩个儿子都是黑的。 一路黑同子 对于任一结点而言,其到叶结点树尾端NIL指针的每一条路径都包含相同数目的黑结点上下一般黑 根结点是黑的;每个叶结点(叶结点即指树尾端NIL指针或NULL结点)是黑的。 中间可红可黑 每个结点要么是红的,要么是黑的。 1)每个结点要么是红的,要么是黑的。
2017-03-01 10:20:18 800
原创 js获取当前日期
Date.prototype.pattern=function(fmt) { var o = { "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12+12, //小时 "H+" : this.getHours(), //小时 "m+" : this
2016-03-22 16:22:55 221
原创 SVN 提交文件相关
1、删除本地SVN项目内容后,将本地文件复制到原目录——不要复制".svn"目录。2、"目录+locked"——svn check out——>clean up...3、提交:out of date——先更新下,打开多版本文件,查看取舍,再提交。
2015-11-09 15:54:56 288
原创 安装新jdk后,resin服务器项目不能启动问题
1、jdk配置:JAVA_HOME——D:\java\jdk1.6.0_13;classpath——.%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;path——%JAVA_HOME%\bin2、将jdk——>bin——>下的tools.jar复制,加入resin——>bin中。完美解
2015-07-21 11:14:16 460
原创 ORA-02287: sequence number not allowed here解决
脚本中插入数据:ORA-02287: sequence number not allowed here问题的解决思路:通过临时表“转移”数据。解决方法:1、新建临时表,将数据插入临时表中create table table1_tmp();insert into table1_tmp select * from *;2、新建序列,将临时表数据插入正式表中--drop
2015-07-21 11:06:48 2289
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人