Java线程的六种状态以及切换

2020-12-06
阅读 7 分钟
20.4k
初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(...

内存泄露与内存溢出的区别

2020-11-01
阅读 2 分钟
8.2k
指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。

微服务架构中常见的注册中心

2020-08-10
阅读 4 分钟
13.7k
盘点一下常用的注册中心上图基本表达了注册中心的交互过程, 体现出三种角色之间关系:服务提供者 Service Provider (Server):服务启动后向RegistryCenter注册 自己的一个实例定期向RegistryCenter发送心跳(heartbeat), 证明自己还能苟一会服务关闭时向RegistryCenter发起注销服务消费者 Service Consumer(Client):服务启...

Java 线程池全面解析

2020-08-05
阅读 6 分钟
2.2k
  BlockingQueue<Runnable> workQueue = null;     workQueue = new ArrayBlockingQueue<>(5);//基于数组的先进先出队列,有界     workQueue = new LinkedBlockingQueue<>();//基于链表的先进先出队列,无界     workQueue = new SynchronousQueue<>();//无缓冲的等待队列,无界