上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 引言 Go Go语言是谷歌2009发布的编程语言,它是一种并发的、带垃圾回收的、快速编译的语言。它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发 阅读全文
posted @ 2017-06-04 09:03 jiguojing 阅读(1384) 评论(0) 推荐(0) 编辑
摘要: nginx apache 简单对比 nginx 相对 apache 的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而 apache 则是阻塞型的,在高并发下 nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对 阅读全文
posted @ 2017-06-04 09:00 jiguojing 阅读(1560) 评论(0) 推荐(0) 编辑
摘要: Semaphore简介 Semaphore是一个计数信号量,它的本质是一个"共享锁"。 信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等待,直到有可用的许可为止。 线程可以通过release()来释放它所持 阅读全文
posted @ 2017-06-01 17:43 jiguojing 阅读(363) 评论(0) 推荐(0) 编辑
摘要: CyclicBarrier简介 cuclicBarrier允许一组线程互相等待,直到到达某个公共屏障点(common barrier point)。因为该barrier在释放等待线程后可以重用,所以称它为循环的barrier。 CyclicBarrier函数列表 CyclicBarrier数据结构 阅读全文
posted @ 2017-06-01 17:00 jiguojing 阅读(276) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch简介 CountDownLatch是通过“共享锁”实现的。在创建CountDownLatch中时,会传递一个int类型参数count,该参数是“锁计数器”的初始状态,表示该“共享锁”最多能被count给线程同时获取。当某线程调用该CountDownLatch对象的awai 阅读全文
posted @ 2017-06-01 16:12 jiguojing 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 介绍: ReadWriteLock,顾名思义,是读写锁。它维护了一对相关的锁 — — “读取锁”和“写入锁”,一个用于读取操作,另一个用于写入操作。(1)“读取锁”用于只读操作,它是“共享锁”,能同时被多个线程获取。(2)“写入锁”用于写入操作,它是“独占锁”,写入锁只能被一个线程锁获取。(3)注意 阅读全文
posted @ 2017-06-01 09:42 jiguojing 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 一.LockSupport的介绍 LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。 LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程,而且park()和unpark()不会遇到“Thread.suspend 和 Thread.resu 阅读全文
posted @ 2017-06-01 09:04 jiguojing 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 1.Condition介绍 Condition的作用是对锁进行更精确的控制。Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalAll()相当于Object 阅读全文
posted @ 2017-05-31 10:27 jiguojing 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 非公平锁之获取锁 非公平锁和公平锁在获取锁的方法上,流程是一样的;它们的区别主要表现在“尝试获取锁的机制不同”。简单点说,“公平锁”在每次尝试获取锁时,都是采用公平策略(根据等待队列依次排序等待);而“非公平锁”在每次尝试获取锁时,都是采用的非公平策略(无视等待队列,直接尝试获取锁,如果锁是空闲的, 阅读全文
posted @ 2017-05-31 09:28 jiguojing 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 释放公平锁 1.unlock() unlock()在ReentrantLock.java中实现的,源码如下: 说明:unlock()是解锁函数,它是通过AQS的release()函数来实现的。在这里,“1”的含义和“获取锁的函数acquire(1)的含义”一样,它是设置“释放锁的状态”的参数。由于“ 阅读全文
posted @ 2017-05-31 08:23 jiguojing 阅读(331) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 9 下一页