============问题描述============ 这个问题在网上查找了较多的资料首先这是一个底层的错误有人说这个是因为多线程互斥的问题,要加synchronized有人说是因为jni问题不过都没有解决我的问题,我发觉很多人都提到个问题就是在2.x的系统就没有问题,放到4.x的系统就有问题了我...
分类:
其他好文 时间:
2014-11-08 15:02:33
阅读次数:
157
一、并查集的概念:
首先,为了引出并查集,先介绍几个概念:
1、等价关系(Equivalent Relation)
自反性、对称性、传递性。
如果a和b存在等价关系,记为a~b。
2、等价类:
一个元素a(a属于S)的等价类是S的一个子集,它包含所有与a有关系的元素。注意,等价类形成对S的一个划分:S的每一个成员恰好互斥地出现在一个等价类...
分类:
其他好文 时间:
2014-11-07 13:07:22
阅读次数:
287
VxWorks进程间通信2 -- 信号量一.信号量的概念是实现任务互斥、同步操作的主要机制。VxWorks提供的信号量经过了高度优化,在所有任务间通信机制中,速度最快。二.信号量的分类Binary Semaphores(二进制):完成互斥、同步操作的最佳方式;速度最快,最常用。Mutual Excl...
分类:
系统相关 时间:
2014-11-07 11:04:12
阅读次数:
227
在进行多线程编程的过程中,线程间的同步与互斥是件需要认真考虑的关键点,而读者与写者就是线程间同步的典型例子:若干个读者在读取文章,若干个写者同时编辑文章,保证多个读者和多个写者能并发或并行(关于并行与并发的区别以及多线程编程的一些基本概念,可以参考这篇博文:多线程初步)执行。解决读者与写着的典型方法是设立一个文章缓冲区,然后多个读者与写者互斥或共同地访问该缓冲区。 写操作是排他锁(排斥读者,同样排斥其他写者),读操作是共享锁(多个读者可读,排斥写者)。当然,当读者与写者、写者与写者几乎同一时间到达时,涉及到...
分类:
其他好文 时间:
2014-11-06 21:57:43
阅读次数:
287
通信是一个比较重要的概念。只要存在多于一个执行单元(并发),就有可能存在通信。linux上的并发主要分为多进程(任务)和多线程。linux也提供了多个通信机制来支持不同进程或者不同线程之间的信息传递。通信方式主要包括管道,套接字,消息队列,共享内存,信号量,互斥量,信号(如kill -0检测进程是否...
分类:
系统相关 时间:
2014-11-06 20:02:42
阅读次数:
200
前面《秒杀多线程第四篇一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,这个问题包括了主线程与子线程的同步,子线程间的互斥,是一道非常经典的多线程同步互斥问题范例,后面分别用了四篇《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经...
分类:
编程语言 时间:
2014-11-06 12:50:59
阅读次数:
273
我们准备来实现互斥的锁,按照官网的思路,给定一个锁的路径,如/Lock,所有要申请这个锁的进程都在/Lock目录下创建一个/Lock/lock-的临时序列节点,并监控/Lock的子节点变化事件。当子节点发送变化时用get_children()获取子节点的列表,如果发现进程发现自己拥有最小的一个序号,则获得锁。处理业务完毕后需要释放锁,此时只需要删除该临时节点即可。简单来说就是永远是拥有最小序号的进程获得锁。...
分类:
其他好文 时间:
2014-11-05 23:12:24
阅读次数:
247
Windows 临界区,内核事件,互斥量,信号量。临界区,内核事件,互斥量,信号量,都能完成线程的同步,在这里把他们各自的函数调用,结构定义,以及适用情况做一个总结。临界区:适用范围:它只能同步一个进程中的线程,不能跨进程同步。一般用它来做单个进程内的代码快同步,效率比较高。相关结构:CRITICA...
分类:
编程语言 时间:
2014-11-05 22:49:52
阅读次数:
239
#include #include "stdio.h"#include #include #define N_CONSUMER 3 //消费者数量#define N_PRODUCER 2 //生产者数量#define C_SLEEP 1 //控制 consumer 消费的节奏#define P_SL...
分类:
编程语言 时间:
2014-11-05 21:06:30
阅读次数:
204
简介 进程同步是一个操作系统级别的概念,是在多道程序的环境下,存在着不同的制约关系,为了协调这种互相制约的关系,实现资源共享和进程协作,从而避免进程之间的冲突,引入了进程同步。临界资源 在操作系统中,进程是占有资源的最小单位(线程可以访问其所在进程内的所有资源,但线程本身并不占有资源或仅仅占有一点必...
分类:
系统相关 时间:
2014-11-05 18:51:01
阅读次数:
416