Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的。而对UNIX发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间的通信方面的侧重点有所不同。前者是对UNIX早期的进程间通信手段进行了系统的改进和扩充,形成了“system...
分类:
系统相关 时间:
2014-11-17 17:11:29
阅读次数:
259
测试库执行startup时提示(11.2.0.1):
查询ORA-27154的错误:
Error: ORA-27154
Text: post/wait create failed
---------------------------------------------------------------------------
Cau...
分类:
数据库 时间:
2014-11-17 15:55:18
阅读次数:
248
//5.生产者消费者问题#include #include #include #include #define MAX 50 #define BUFSIZE 10 //仓库的大小int buf[BUFSIZE]={0}; int in=0; int out=0; sem_t...
分类:
编程语言 时间:
2014-11-14 19:30:36
阅读次数:
205
/*semopen_pth.c*/#include #include #include #include #includevoid print();void * thread_function(void *arg);sem_t * sem; ...
分类:
编程语言 时间:
2014-11-13 23:59:34
阅读次数:
425
前几篇分析了一下AQS的原理和实现,这篇拿Semaphore信号量做例子看看AQS实际是如何使用的。
Semaphore表示了一种可以同时有多个线程进入临界区的同步器,它维护了一个状态表示可用的票据,只有拿到了票据的线程尽可以进入临界区,否则就等待,直到获得释放出的票据。Semaphore常用在资源池中来管理资源。当状态只有1个0两个值时,它退化成了一个互斥的同步器,类似锁。
...
分类:
编程语言 时间:
2014-11-11 14:31:26
阅读次数:
216
传统的进程间通信的方式有大致如下几种:(1) 管道(PIPE)(2) 命名管道(FIFO)(3) 信号量(Semphore)(4) 消息队列(MessageQueue)(5) 共享内存(SharedMemory)(6) SocketJava如何支持进程间通信。我们把Java进程理解为JVM进程。很明...
分类:
编程语言 时间:
2014-11-10 19:30:30
阅读次数:
219
Semaphore用于保存当前可用许可的数量。是通过共享锁实现的。根据共享锁的获取原则,Semaphore分为"公平信号量"和"非公平信号量"。"公平信号量"和"非公平信号量"的释放信号量的机制是一样的!不同的是它们获取信号量的机制:线程在尝试获取信号量许可时,对于公平信号量而言,如果当前线程不在队...
分类:
编程语言 时间:
2014-11-10 09:47:25
阅读次数:
241
Semaphore是JDK1.5之后出的一个实现同步的另一个方式。Semaphore可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程数。假如你有3个资源,有10个线程要使用该资源,同时只能有3个线程使用,所以其余7线程在等待,只要3个中任意一个释放资源,那么7个线程中的一个就可以使用了。
另外,7个线程等待可以使随机获取机会,也可以是按...
分类:
编程语言 时间:
2014-11-09 15:22:35
阅读次数:
234
共享内存同意两个或多个进程共享一给定的存储区,由于数据不须要来回复制,所以是最快的一种进程间通信机制。共享内存能够通过mmap()映射普通文件(特殊情况下还能够採用匿名映射)机制实现,也能够通过系统V共享内存机制实现。应用接口和原理非常easy,内部机制复杂。为了实现更安全通信,往往还与信号量等同步...
分类:
系统相关 时间:
2014-11-07 18:32:40
阅读次数:
183
一、什么是优先级翻转问题 所谓优先级翻转问题(Priority Inversion)即当一个高优先级任务通过信号量机制访问共享资源时,该信号量已被一低优先级任务占有,而这个低优先级任务在访问共享资源时可能又被其它一些中等优先级任务抢先,因此造成高优先级任务被许多具有较低优先级任务阻塞,实时性难以得....
分类:
编程语言 时间:
2014-11-07 13:05:28
阅读次数:
89