- 浏览: 1487959 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (525)
- SEO (16)
- JAVA-EE-Hibernate (6)
- JAVA-EE-Struts (29)
- JAVA-EE-Spring (15)
- Linux (37)
- JAVA-SE (29)
- NetWork (1)
- CMS (14)
- Semantic Research (3)
- RIA-Flex (0)
- Ajax-Extjs (4)
- Ajax-Jquery (1)
- www.godaddy.com (0)
- SSH (34)
- JavaScript (6)
- SoftwareEngineer (9)
- CMMI (0)
- IDE-Myeclipse (3)
- PHP (1)
- Algorithm (3)
- C/C++ (18)
- Concept&Items (2)
- Useful WebSite (1)
- ApacheServer (2)
- CodeReading (1)
- Socket (2)
- UML (10)
- PowerDesigner (1)
- Repository (19)
- MySQL (3)
- SqlServer (0)
- Society (1)
- Tomcat (7)
- WebService (5)
- JBoss (1)
- FCKeditor (1)
- PS/DW/CD/FW (0)
- DesignPattern (11)
- WebSite_Security (1)
- WordPress (5)
- WebConstruction (3)
- XML|XSD (7)
- Android (0)
- Project-In-Action (9)
- DatabaseDesign (3)
- taglib (7)
- DIV+CSS (10)
- Silverlight (52)
- JSON (7)
- VC++ (8)
- C# (8)
- LINQ (1)
- WCF&SOA (5)
- .NET (20)
- SOA (1)
- Mashup (2)
- RegEx (6)
- Psychology (5)
- Stock (1)
- Google (2)
- Interview (4)
- HTML5 (1)
- Marketing (4)
- Vaadin (2)
- Agile (2)
- Apache-common (6)
- ANTLR (0)
- REST (1)
- HtmlAnalysis (18)
- csv-export (3)
- Nucth (3)
- Xpath (1)
- Velocity (6)
- ASP.NET (9)
- Product (2)
- CSS (1)
最新评论
-
lt26w:
理解成门面模式应该比较容易明白吧
FacadePattern-Java代码实例讲解 -
lt26w:
看下面的例子比较明白.
FacadePattern-Java代码实例讲解 -
javaloverkehui:
这也叫文档,别逗我行吗,也就自己看看。
HtmlCleaner API -
SE_XiaoFeng:
至少也应该写个注释吧。
HtmlCleaner API -
jfzshandong:
...
org.springframework.web.filter.CharacterEncodingFilter 配置
线程中互斥锁的使用,达到对共享资源互斥使用。除了使用互斥锁,信号量,也就是操作系统中所提到的PV原语,能达到互斥和同步的效果,这就是今天我们所要讲述的信号量线程控制。
PV原语 是对整数计数器信号量sem的操作,一次P操作可使sem减一,而一次V操作可是sem加一。进程(或线程)根据信号量的值来判断是否对公共资源具有访问 权限。当信号量的值大于零或等于零的时候,该进程(或线程)具有对公共资源访问的权限,否则,当信号量的值小于时,该进程(或线程)就会被阻塞,直到信号 量的值大于或等于一。
1、在LINUX中,实现了POSIX的无名信号量,主要用于线程间的互斥同步,下面将简单介绍一些函数接口:
(1)、sem_init
功能: 用于创建一个信号量,并初始化信号量的值。
头文件: <semaphore.h>
函数原型: int sem_init (sem_t* sem, int pshared, unsigned int value);
函数传入值: sem:信号量。
pshared:决定信号量能否在几个进程间共享。由于目前LINUX还没有实现进
程间共享信息量,所以这个值只能取0。
函数返回值: 0:成功。
-1:失败。
(2)其他函数。
int sem_wait (sem_t* sem);
int sem_trywait (sem_t* sem);
int sem_post (sem_t* sem);
int sem_getvalue (sem_t* sem);
int sem_destroy (sem_t* sem);
功能:sem_wait和sem_trywait相当于P操作,它们都能将信号量的值减一,两者的区别在
于若信号量的值小于零时,sem_wait将会阻塞进程,而sem_trywait则会立即返回。
sem_post相当于V操作,它将信号量的值加一,同时发出唤醒的信号给等待的进程
(或线程)。
sem_getvalue 得到信号量的值。
sem_destroy 摧毁信号量。
函数传入值: sem:信号量。
函数返回值: 同上。
2、函数实现。
线程中互斥锁的使用,达到对共享资源互斥使用。除了使用互斥锁,信号量,也就是操作系统中所提到的PV原语,能达到互斥和同步的效果,这就是今天我们所要讲述的信号量线程控制。 PV原语是对整数计数器信号量sem的操作,一次P操作可使sem减一,而一次V操作可是sem加一。进程(或线程)根据信号量的值来判断是否对公共资源具有访问权限。当信号量的值大于零或等于零的时候,该进程(或线程)具有对公共资源访问的权限,否则,当信号量的值小于时,该进程(或线程)就会被阻塞,直到信号量的值大于或等于一。 1、在LINUX中,实现了POSIX的无名信号量,主要用于线程间的互斥同步,下面将简单介绍一些函数接口: (1)、sem_init 功能: 用于创建一个信号量,并初始化信号量的值。 头文件: <semaphore.h> 函数原型: int sem_init (sem_t* sem, int pshared, unsigned int value); 函数传入值: sem:信号量。 pshared:决定信号量能否在几个进程间共享。由于目前LINUX还没有实现进 程间共享信息量,所以这个值只能取0。 函数返回值: 0:成功。 -1:失败。 (2)其他函数。 int sem_wait (sem_t* sem); int sem_trywait (sem_t* sem); int sem_post (sem_t* sem); int sem_getvalue (sem_t* sem); int sem_destroy (sem_t* sem); 功能:sem_wait和sem_trywait相当于P操作,它们都能将信号量的值减一,两者的区别在 于若信号量的值小于零时,sem_wait将会阻塞进程,而sem_trywait则会立即返回。 sem_post相当于V操作,它将信号量的值加一,同时发出唤醒的信号给等待的进程 (或线程)。 sem_getvalue 得到信号量的值。 sem_destroy 摧毁信号量。 函数传入值: sem:信号量。 函数返回值: 同上。 2、函数实现。
发表评论
-
Linux内核源码包的安装及编译zz
2009-12-15 20:58 4266http://my.donews.com/ecco2005/2 ... -
Linux内核Makefile文件(二)
2009-12-15 19:34 2416=== 6 体系Makefile文 ... -
Linux内核Makefile文件(一)
2009-12-15 19:34 1834本文是/Documentation/kbuild/make ... -
Linux加载模块命令
2009-12-15 19:28 2677安装模块insmod *.ko卸载 ... -
linux内核模块编程
2009-12-15 19:25 3556主题: linux内核模块的程序结构--模块加载函数(必须), ... -
编译linux内核~
2009-12-05 22:04 1396小菜鸟第一次编译linux内核。截图太多 。。不方便上传 = ... -
grub2 基础教程
2009-12-05 18:01 2742grub2基础教程-修订版 ... -
Ubuntu9.10版本没有了menu.lst文件!
2009-12-05 18:00 3114囧~现在都在grub下面配置了。 不过麦斯之前的men ... -
关于信号量与线程互斥锁的区别与实现
2009-11-30 14:37 2389之前一直没有怎么 ... -
信号量和自旋锁
2009-11-29 21:56 1626内核同步措施 ... -
Linux信号量semaphore编程实例
2009-11-29 21:20 6539本例示范Linux信号量的基本用法。该范例使用了两个线程分别对 ... -
Linux获取当前时间
2009-11-29 21:16 3636Linux获取当前时间 ... -
pthread库学习(2): 线程的同步,使用信号量
2009-11-29 20:55 2453先看下面这段程序,主线程创建了三个线程,每个线程中均有一个打印 ... -
信号量的基本思想
2009-11-29 20:17 1455信号量是1965荷兰Dijkstra 为了解决并发进程问题 ... -
多进程通信方式一:管道(PIPE)
2009-11-27 18:29 9074进程通信(IPC)的几种方式及比较 撰文:黄显国08 ... -
进程的管道通信
2009-11-27 18:12 2981实验四 进程的管道通信 ... -
Linux下线程的挂起和恢复
2009-11-27 15:42 3700POSIX的Linux操作系统没有提供线程挂起和恢复的例程,在 ... -
Linux 编程之生成静态连接库
2009-11-27 15:41 1386静态库及动态库的建立 ... -
LInux高级编程 - 线程(Threads)
2009-11-27 15:40 1854LInux高级编程 - 线程(Threads) ... -
Linux下c开发 之 线程通信
2009-11-27 15:39 19301.Linux“线程” 进程与 ...
相关推荐
Linux信号量线程控制--培训教程.pdf 亚嵌培训教程,绝对经典。
在Linux环境下实现一个多线程对临界资源的互斥操作,利用信号量实现对临界资源的保护,支持Linux下文件输入输出,提高对Linux环境下多进程、多线程、信号量机制和文件操作等知识的理解。 设有进程A、B、C,分别调用...
linux 进程和线程编程 pipe --原始管道 命名管道 消息队列 信号量 内存共享 线程编程
linux多线程信号量.pdf
使用多线程进行串口编程,获取串口数据,利用互斥锁和信号量在不同的线程中安全地操作数据,希望该demo能帮助你快速理解并掌握上述知识。
1、Linux下线程概述 2、linux线程实现 。。。。。。。。。 2.4 信号量线程控制 等等 基本概述了linux下多线程编程的一些基本内容 入门教程 28页
但是下面介绍的信号量的接口是用于线程的信号量,注意不要跟用于进程间通信的信号量混淆。 一、什么是信号量 线程的信号量与进程间通信中使用的信号量的概念是一样,它是一种特殊的变量,它可以被增加或减少,但对其...
基于信号量的Linux多线程同步研究
学习文档包括线程的创建和退出、线程属性设置、互斥锁线程控制和信号量线程控制。
②linux系统编程学习:C语言进程、信号、线程、线程锁、进程锁、信号量; ③linux网络编程学习:tcp编程、udp编程(socket套接字编程); ④linux-shell编程学习; 资源几乎包含了博主的整个linux学习的资料,是根据...
linux 系统的编程的源码,对初学者很有帮助。多线程、内存、信号量等程序。
Linux线程管理-线程信号量的使用实例.pdf 学习资料 复习资料 教学资源
使用Linux线程信号量实现哲学家问题,只用信号量和互斥量。问题描述:由Dijkstra提出并解决的哲学家进餐问题(The Dinning Philosophers Problem)是典型的同步问题。该问题是描述有五个哲学家共用一张圆桌,分别坐在...
linux多线程信号量[归类].pdf
linux多线程信号量[参考].pdf
四、条件变量与互斥锁、信号量的区别 55 第六章 共享内存 56 一、什么是共享内存区 56 二、mmap 56 三、posix共享内存函数 60 四、ftruncate和fstat函数 62 五、共享内存区的写入和读出 64 六、程序例子 65
介绍了linux线程同步的所有方式,包括互斥、自旋、信号量、条件变量等技术
2. 掌握如何利用信号量完成线程间的同步与互斥。 3. 熟悉Makefile工作原理,掌握编写Makefile的编写方法。 二、实验基本要求 1. 掌握熟悉线程的定义及操作方法。 2. 利用信号量的PV操作完成完成以下单个生产者和单个...
线程编程 LINUX 线程编程 LINUX线程编程 LINUX线程编程 LINUX线程编程 LINUX线程编程 LINUX线程编程 LINUX线程编程 LINUX线程编程 LINUX线程编程 LINUX线程编程 LINUX