摘要: 1. 引言 在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现 阅读全文
posted @ 2017-07-31 15:41 looyee 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。 阅读全文
posted @ 2017-07-31 15:41 looyee 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 术语定义 线程不安全的HashMap 因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap,如以下代码 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈 阅读全文
posted @ 2017-07-31 15:39 looyee 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 1. 引言 原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为"不可被中断的一个或一系列操作" 。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Intel处理器和Java里是如何实现原子操作的。 2. 术语定义 3. 处理器如何 阅读全文
posted @ 2017-07-31 15:39 looyee 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1. 引言 合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线 阅读全文
posted @ 2017-07-31 15:38 looyee 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 喜欢 | 作者 方腾飞 发布于 2012年5月24日. 估计阅读时间: 1 分钟 | 智能化运维、Serverless、DevOps......2017年有哪些最新运维技术趋势?CNUTCon即将为你揭秘!32讨论 分享到:微博微信FacebookTwitter有道云笔记邮件分享 稍后阅读 我的阅读 阅读全文
posted @ 2017-07-31 15:37 looyee 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 引言 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 它在某些情况下比synchronize 阅读全文
posted @ 2017-07-31 15:36 looyee 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/yaopeng_2005/article/details/7064869 OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。 完成中继功能的节点通常称为中继系统。 阅读全文
posted @ 2016-10-26 10:07 looyee 阅读(115) 评论(0) 推荐(0) 编辑
摘要: tcpdump -s0 -i any -w /home/inassouth/jiangsi.cap 首先,先运行ifconfig,看一下要抓的是哪个网络端口,例子里面只有eth1这一个端口。 首先,先运行ifconfig,看一下要抓的是哪个网络端口,例子里面只有eth1这一个端口。 那么我们开始介绍 阅读全文
posted @ 2016-10-12 14:22 looyee 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 简单地说,为了实现跨越互联网的,主机 A 的进程 P1,和主机 B 的进程 P2 之间的通信,我们逐层把这个任务交给 TCP/IP 协议栈。运输层:“如果有人能帮我把数据从某个网络中的机器 A 搬到另一个网络中的机器 B,我就可以搞定这个任务,因为我知道不同的数据应该交给机器上的哪个进程。”网络层: 阅读全文
posted @ 2016-08-11 21:02 looyee 阅读(1096) 评论(0) 推荐(1) 编辑