在 Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity。 所有对象的非同步 方法都能够在任意时刻被任意线程调用,此时不需要考虑加锁的问题。 而对于对象的同步方法来说,在任意时刻有且仅有一个拥有该对象独占锁的线程能够调...
分类:
编程语言 时间:
2015-08-11 06:58:47
阅读次数:
226
Java Socket的api可能很多人会用,但是Java Socket的参数可能很多人都不知道用来干嘛的,甚至都不知道有这些参数。 backlog 用于ServerSocket,配置ServerSocket的最大客户端等待队列。等待队列的意思,先看下面代...
分类:
其他好文 时间:
2015-08-03 11:41:34
阅读次数:
141
在看阻塞睡眠实现机制前,我们来看一下内核中广泛用到的等待队列。
Linux内核的等待队列为双循环链表结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。它有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待队列项中都包含一个list_head(双链表)。通过这样一个双链表把等待进程链接起来。
下面来看两者数据结构...
分类:
其他好文 时间:
2015-08-02 23:28:01
阅读次数:
196
Atomic简介
Atomic包是java.util.concurrent下的另一个专门为线程安全设计的Java包,包含多个原子操作类。这个包里面提供了一组原子变量类。其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个...
分类:
其他好文 时间:
2015-07-31 16:13:24
阅读次数:
200
运行队列链表吧处于TASK_RUNNING状态的所有进程组织到一起
等待队列表示一组睡眠的进程,当某一条件变为真时,由内核唤醒他们,等待队列由双向链表实现...
分类:
系统相关 时间:
2015-07-30 17:05:16
阅读次数:
182
事件1. epfd-file->eventpoll->wq: struct eventpoll { ... wait_queue_head_t wq; //用于epoll_pwait()事件的等待队列 情况1分析 struct list_head rdllist; //就绪的fd队列 ready ....
分类:
其他好文 时间:
2015-07-27 22:35:12
阅读次数:
147
1. 等待队列数据结构等待队列由双向链表实现,其元素包括指向进程描述符的指针。每个等待队列都有一个等待队列头(wait queue head),等待队列头是一个类型为wait_queque_head_t的数据结构:struct __wait_queue_head { spinlock_t lock;...
分类:
系统相关 时间:
2015-07-26 18:51:00
阅读次数:
171
应用处理网络请求的能力,由两个因素决定:
1、应用的OPS容量(本例中是 就是我们的jetty应用:controller和thrift的处理能力)
2、Socket等待队列的长度(这个是os级别的,cat /proc/sys/net/core/somaxconn 可以查看,默认是128,可以调优成了4192,有的公司会搞成32768)...
分类:
其他好文 时间:
2015-06-28 11:18:03
阅读次数:
200
以下内容仅表示自己的学习笔记,对其中一些知识的见解,防止遗忘,不喜勿喷。错误之处,欢迎发邮箱指导:738254743@qq.com阻塞:没有获得资源则进程挂起,直到获取资源为止。挂起进程进入睡眠状态,给调度的等待队列移走,直到等待条件满足。非阻塞:操作设备部不挂起,或放弃..
分类:
系统相关 时间:
2015-06-20 01:36:17
阅读次数:
214
定义和初期化定义等待队列wait_queue_head_t myqueue;初始化等待队列init_waitqueue_head(&myqueue)定义并初始化等待队列DECLARE_WAIT_QUEUE_HEAD(myqueue)睡眠条件睡眠当condition为真时,立即执行;wait_even...
分类:
其他好文 时间:
2015-06-04 00:49:28
阅读次数:
134