1.AbstractQueuedSynchronizer(以下简称AQS)是Java并发包提供的一个同步基础机制,是并发包中实现Lock和其他同步机制(如:Semaphore、CountDownLatch和FutureTask等)的基础。 2.AQS内部包含一个FIFO的同步等待队列,简单的说,没有 ...
分类:
其他好文 时间:
2016-08-21 15:18:19
阅读次数:
146
vim/etc/sysctl.conf
net.ipv4.tcp_syncookies=1
#表示开启SYNCookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,便是关闭。
net.ipv4.tcp_tw_reuse=1
#表示开启重用。运行将TIME-WAITsockets重新用于新的TCP连接,默认为0,表示关闭。
..
分类:
系统相关 时间:
2016-08-01 23:11:20
阅读次数:
235
Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对 ...
分类:
编程语言 时间:
2016-07-29 17:10:26
阅读次数:
295
第十二章 Linux 驱动程序中的 阻塞和非阻塞 I/O 等待队列是 Linux 内核的一种实现进程休眠的技术。在上一章介绍的自旋锁使用的是不断循环 的方式阻塞 Linux 驱动,这种方式很占 CPU 资源。而等待队列的你眠技术可以大大降低休眠进程对 CPU 资源的消耗,信号量就是利用等待队列实现了 ...
分类:
其他好文 时间:
2016-07-07 22:16:20
阅读次数:
163
一、阻塞与非阻塞
阻塞与非阻塞是设备访问的两种方式。在写阻塞与非阻塞的驱动程序时,经常用到等待队列。
阻塞调用是指调用结果返回之前,当前线程会被挂起,函数只有在得到结果之后才会返回。
非阻塞指不能立刻得到结果之前,该函数不会阻塞当前进程,而会立刻返回。
函数是否处于阻塞模式和驱动对应函数中的实现机制是直接相关的,但并不是一一对应的,例如我们在应用层设置为阻塞模式,如果驱动中没有...
分类:
系统相关 时间:
2016-07-06 15:04:21
阅读次数:
404
注:本文主要介绍了Condition和ReentrantLock工具实现独占锁的部分代码原理,Condition能在线程之间协调通信主要是AbstractQueuedSynchronizer和conditon内有两个队列用来切换,整个协作过程是靠结点在AQS的等待队列和Condition的等待队列中 ...
分类:
其他好文 时间:
2016-07-05 15:31:10
阅读次数:
206
信号量的概述:信号量是用来解决进程之间的同步与互斥问题的一种进程之间通信机制,包括一个称为信号量的变量和在该信号量下等待资源的进程等待队列,以及对信号量进程的两个原子操作(PV操作)。其中信号量对应于某一个资源,取一个非负的整形值。信号量值指的是当前可用的该资源的数量,若它等于0则意味着目前没有可用 ...
分类:
系统相关 时间:
2016-06-19 11:35:50
阅读次数:
208
本文主要学习JAVA多线程中的 wait()方法 与 notify()/notifyAll()方法的用法。 ①wait() 与 notify/notifyAll 方法必须在同步代码块中使用 ②wait() 与 notify/notifyAll() 的执行过程 ③中断 调用wait()方法进入等待队列 ...
分类:
编程语言 时间:
2016-05-14 22:54:44
阅读次数:
242
#include
#include
#include
#include "ioctl_led.h"
#define DEV_NAME "test-dev"
volatile bool empty = true;
//定义一个进程资源的指针变量
struct task_struct *task;
int test_open(struct inode *inode, struct file ...
分类:
系统相关 时间:
2016-05-13 15:08:20
阅读次数:
212
Atomic包介绍
Java1.5的Atomic包名为java.util.concurrent.atomic。这个包提供了一系列原子类。这些类可以保证多线程环境下,当某个线程在执行atomic的方法时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个线程执行。Atomic类在软件层面上是非阻塞的,它的原子性其实是在硬件层面上借助相关的指令来...
分类:
编程语言 时间:
2016-05-13 00:42:45
阅读次数:
198