网络拥塞 (Congestion)是由多个传输流需要共享(争用)网络内资源造成的。当资源需求超过网络容量时,就会产生问题,每条流不知道当前网络资源分配情况,每条流也不知道其它(竞争)流的存在,从而导致丢包率升高、往返时间增大、甚至网络崩溃。如何协调网络内各条流,使其可以高效利用网络资源?
常见排序算法-堆排序
发表于
|
分类于
算法
前几天去某家公司面试,被要求手写和推导堆排序算法(比如建堆的时间复杂度为什么是O(n)),其实大二学了这个之后基本就没怎么看了,所以导致当是面试的情景很是尴尬。但堆排序其实是一个极其常见基础算法,写不出来真的不能怪面试官,还是自己基础不够扎实。那么下面就再来复习一下堆排序得原理。
Java中几种常量池的区分
发表于
|
分类于
Java
在Java的内存分配中,经常听到很多关于常量池的描述,我开始看的时候也是看的很模糊,网上五花八门的说法简直太多了,最后查阅各种资料,终于算是差不多理清了,很多网上说法都有问题,下面我会尝试着来区分一下这几个概念,如果有错误望读者指正。
深入理解Java中的volatile关键字
发表于
|
分类于
Java
volatile关键字可以算得上是JVM提供的最轻量级的同步机制,但是它比较难以被完整正确的理解,我在之前也看了一些volatile的文章,但是看完之后都感觉在云里雾里。以至于很多人都不习惯去用它,遇到多线程竞争资源的场景一律使用synchronized关键字进行同步。了解volatile变量的语义对了解多线程操作的其它特性很有意义,下面我们就来看一下volatile的语义是什么?