npm 可以方便的发布自己的包, 由于公司有自己的私服 npm 服务器, 并且自己并不参与实际的发包工作. 所以很长时间对发包的事情没有清晰的认识, 其实搞清楚之后发现是非常简单的. 说一下在 npmjs.org 上发包的流程. 首先需要有 npmjs 的账户 更改自己的 npm 的源为 npmjs ...
分类:
其他好文 时间:
2020-07-12 12:03:42
阅读次数:
74
这篇文章,我们来聊聊面试时一个比较有杀伤力的问题:聊聊你对AQS的理解? 之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题。当时那位同学内心估计受到了一万点伤害。。。 因为首先,很多人可能连AQS是什么都不知道。或者仅仅是听说过AQS这个名词,但是可能连全称怎么拼写都不知道。 更有 ...
分类:
编程语言 时间:
2020-07-05 19:12:03
阅读次数:
64
首先,分布式锁和我们平常讲到的锁原理基本一样,目的就是确保在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。 在一个进程中,也就是一个jvm或者说应用中,我们很容易去处理控制,在jdk java.util并发包中已经为我们提供了这些方法去加锁,比如synchronized关键字或者 ...
分类:
其他好文 时间:
2020-07-04 15:38:23
阅读次数:
55
注:本文基于MySQL高可用之MHA配置VIPvip配置可以采用两种方式:1、通过keepalived的方式管理虚拟ip的浮动;2、通过脚本方式启动虚拟ip的方式(即不需要keepalived或者heartbeat类似的软件)1、keepalived方式管理虚拟ip#在编译安装Keepalived之前,必须先安装内核开发包kernel-devel以及openssl-devel、popt-devel
分类:
数据库 时间:
2020-07-03 23:24:01
阅读次数:
55
CAS:Compare and Swap,即比较再交换。 在对compareAndSwapObject追源码的过程中,出现 "Source not found"的情况,查了一下,原来是该方法并非由JAVA书写开发,而是引入的其他语言。 jdk5增加了并发包java.util.concurrent.* ...
分类:
其他好文 时间:
2020-07-03 17:56:15
阅读次数:
97
该问题一般是gcc中libc环境出现问题,libc其实全名是指glibc中的libc6。 有时候为了做gcc交叉编译环境,自己从目标系统或者开发包中拷贝或网上下载libc.so,实际上gcc编译环境中的libc.so并不是真正的so文件,而是一个中间文件,本质上是一个文本文件,用于编译连接使用,所以 ...
分类:
其他好文 时间:
2020-07-01 20:23:57
阅读次数:
126
10.1CountDownLatch 计数器 new CountDownLatch(2)countDownLatch.countDown(); //-1 countDownLatch.await();//当计数器为0时返回 和join之间的区别 不用等到子进程全部执行完毕之后再返回 是基于AQS实现 ...
分类:
编程语言 时间:
2020-06-29 00:06:30
阅读次数:
102
8.1介绍 线程池里面的线程是可以复用的 大量异步任务是线程池表现良好的性能 线程池提供了一种资源限制和管理的手段 线程池提供了许多可调参数和可扩展接口, 但是可以使用更加方便的Executors的工厂方法创建线程,不建议 8.2类图分析 Executors是一个工具类,提供了好多静态方法 线程池状 ...
分类:
编程语言 时间:
2020-06-28 22:25:00
阅读次数:
68
6.1LockSupport 跟wait()不同! 引入了一个许可证的概念。 void park()方法 检测此时的线程是否拥有许可证,有的话。就通过,没有的话就阻塞。 LockSupport.park():在哪儿调用就是检查哪个线程 void unpark(Thread thread)方法 Loc ...
分类:
编程语言 时间:
2020-06-28 20:24:13
阅读次数:
65
5.1CopyOnWriteArrayList 读:都是旧数组里面的值 写:加ReetrantLock,然后复制一份,在复制的一份上修改;最后将复制的一份设置成主本。 源码就没必要看了,太简单了! 弱一致性问题 简单说就是,修改时,都是复制的。那么读的时候很可能读到修改之前的值,这就是弱一致性问题 ...
分类:
编程语言 时间:
2020-06-28 09:20:13
阅读次数:
74