更快的原子类:LongAdder 大家对AtomicInteger的基本实现机制应该比较了解,它们是在一个死循环内,不断尝试修改目标值,知道修改成功,如果竞争不激烈,那么修改成功的概率就很高,否则,修改失败的概率就很高,在大量修改失败时,这些原子操作就会进行多次循环尝试,因此性能就会受到影响 那么竞 ...
分类:
编程语言 时间:
2017-03-20 17:48:06
阅读次数:
580
socket 客户端 的一些想法 包头 4byte 4byte 2byte 2byte 数据长 数据长 690 0 1.登录 2.每隔15秒发送心跳包 3.死循环接收数据,把收到的byte[]塞到List<byte>(队列,先进先出)(生产者) 4.List<byte> 要有同步锁 5.死循环读取L ...
分类:
其他好文 时间:
2017-03-20 17:03:17
阅读次数:
175
原文链接:http://www.jianshu.com/p/2dbb360886a8 本文会用实例的方式,将 iOS 各种 IM 的方案都简单的实现一遍。并且提供一些选型、实现细节以及优化的建议。 —— 由宇朋Look分享 前言 本文会用实例的方式,将iOS各种IM的方案都简单的实现一遍。并且提供一 ...
分类:
移动开发 时间:
2017-03-20 00:12:49
阅读次数:
460
主要记录hashMap的一些基本操作源码实现原理以及多线程情况下get()操作的死循环引发原因 一、hashMap简介 1.hashMap集合的主要属性及方法 (默认初始化容量)DEFAULT_INITIAL_CAPACITY = 16 (默认最大容量)MAXIMUM_CAPACITY = 1 << ...
分类:
编程语言 时间:
2017-03-19 22:09:26
阅读次数:
315
运行结果如下,陷入死循环,永远不会执行console.log("end")直至程序报错 给了条件之后 ,当条件满足然后他就开始返回 ...
分类:
其他好文 时间:
2017-03-17 18:56:23
阅读次数:
166
如果一个函数直接或者间接调用了自己,那么就形成了递归(recursion),比如斐波那契数列的一个实现 def fib(n): if n <= 2: return 1 else: return fib(n - 1) + fib(n - 2) 递归一定要有结束条件,否则就形成了死循环, 比如下面的例子 ...
分类:
编程语言 时间:
2017-03-16 16:11:03
阅读次数:
214
线程不安全的HashMap 因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap,如以下代码 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下H ...
分类:
其他好文 时间:
2017-03-12 16:42:05
阅读次数:
203
致敬JavaScript的作者:布兰登·艾克 知识点: 0.JS的写法 遇到 - 的,去掉减号然后把减号后面的字母大写。 例如,css里面的 margin-top,在JS里面要写成:marginTop。 href:"javascript:;" a标签没有内容可写的时候可以用这个空的js语句。 js三 ...
分类:
编程语言 时间:
2017-03-12 14:43:35
阅读次数:
234
一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。 根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。 通过ps aux | grep PID命令,可以进一步确定是tomc ...
分类:
其他好文 时间:
2017-03-06 20:39:47
阅读次数:
216
在内核启动的最后阶段启动了三个进程 进程0:进程0其实就是刚才讲过的idle进程,叫空闲进程,也就是死循环。进程1:kernel_init函数就是进程1,这个进程被称为init进程。进程2:kthreadd函数就是进程2,这个进程是linux内核的守护进程。这个进程是用来保证linux内核自己本身能 ...
分类:
Web程序 时间:
2017-02-25 22:53:00
阅读次数:
344