码迷,mamicode.com
首页 >  
搜索关键字:互斥    ( 2999个结果
分布式系统互斥算法---集中式算法
分布式系统的基础是多进程之间的并发与协作,这就不可避免的涉及到多个进程对共享资源的互斥访问。 在单系统中,进程间对共享资源的互斥访问可以通过信号量、互斥锁来很容易的实现互斥; 在分布式系统中可能会稍微复杂一点,有些互斥算法的大体思想和单系统中的互斥锁比较类似(比如令牌);但是分布式系统中还有其他更多的互斥方法; 分布式互斥算法可以分为两种不同类型: 1)基于令牌的解决方法,互斥是通过进程之...
分类:编程语言   时间:2015-05-10 15:45:50    阅读次数:194
分布式系统互斥算法---非集中式算法
集中式算法存在单点失效问题,那么我们接着来看一下非集中式算法。 假设共享资源副本被复制了n次,每个副本有其自身协作者控制访问;如果某个进程要访问共享资源,主要获得m>n/2个协作者投票允许即可。 如图1所示,如果进程0要发起访问请求,只要8个协作者中有5个(包括其自身)投票允许即可。 图1 但是该算法也有自身的缺陷,即当某个协作者崩溃时,它将忘记之前投过的票,可能在回复后又投了重复的票...
分类:编程语言   时间:2015-05-10 15:44:15    阅读次数:165
fcntl文件锁操作
文件锁经常应用于两个方面:1.一是锁定文件中的临界数据,比如并发投票时文件记录的投票数2.二是利用具有互斥性质的写锁,实现进程的并发控制。/*使用文件锁*/#include fcntl(int fildes,int cmd,struct flock* arg);cmd:F_GETLK,F_SETLK...
分类:其他好文   时间:2015-05-09 16:13:29    阅读次数:125
Linux下互斥量加锁与解锁操作的C代码实现
一、概述 在实际的软件程序中,由于代码量较大,函数之间的调用关系较为复杂,因此对于某些全局变量的操作要格外小心。在程序中,一般采用互斥量加锁的方式来保证对全局变量的操作的唯一性。 本文详细介绍了Linux下互斥量加锁与解锁操作的C代码实现,为相关的软件开发工作的开展提供了有益的参考。二、加锁与解锁函数及时间结构体介绍 1.加锁函数pthread_mutex_timedlock 函数原型:in...
分类:系统相关   时间:2015-05-09 11:46:48    阅读次数:174
C# 并行编程 之 并发集合 (.Net Framework 4.0)
此文为个人学习《C#并行编程高级教程》的笔记,总结并调试了一些文章中的代码示例。 在以后开发过程中可以加以运用。 对于并行任务,与其相关紧密的就是对一些共享资源,数据结构的并行访问。经常要做的就是对一些队列进行加锁-解锁,然后执行类似插入,删除等等互斥操作。 .NetFramework 4.0 中提供了一些封装好的支持并行操作数据容器,可以减少并行编程的复杂程度。 基本信息...
分类:Windows程序   时间:2015-05-08 10:56:37    阅读次数:230
多线程程序设计
1.线程概念 线程就是“轻量级”的进程 线程与创建它的进程共享代码段和数据段 线程拥有自己独立的栈 2.函数学习 创建线程 函数名:pthread_create 函数原型:int pthread_create(pthread_t *thread,const pthread_attr_t *attr,void *(*start_routine)(void *),void *arg) ...
分类:编程语言   时间:2015-05-07 18:50:51    阅读次数:128
垒骰子—题解
垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。 两...
分类:其他好文   时间:2015-05-07 16:51:59    阅读次数:169
生产者消费者之信号量的使用
实验报告一、实验目的1.熟悉临界资源、信号量及PV操作的定义与物理意义2.了解进程通信的方法3.掌握进程互斥与同步的相关知识4.掌握用信号量机制解决进程之间的同步与互斥问题5.实现生产者-消费者问题,深刻理解进程同步问题二、实验环境Linux系统三、实验内容在Linux操作系统下用C或C++实现经典...
分类:其他好文   时间:2015-05-07 11:54:50    阅读次数:253
linux应用开发-信号量互斥编程
linux应用开发-信号量互斥编程 一 相应的函数 1 创建/打开信号量集合 函数名 semget 函数原形 int semget(key_t key, int nsems, int semflg) 函数功能 获取信号量集合的标识符 当key所指的信号量不存在的时候,且semflg里包含了IPC_CREAT,就会创建一个信号量的集合 所属头文...
分类:系统相关   时间:2015-05-07 08:52:59    阅读次数:188
【转】互斥对象锁和临界区锁性能比较
原作者:chexlong原文地址:http://blog.csdn.net/chexlong/article/details/7060425在Win32平台上进行多线程编程,常会用到锁。下边用C++实现了互斥对象(Mutex)锁和临界区(CRITICAL_SECTION)锁,以加深理解和今后方便使用...
分类:其他好文   时间:2015-05-06 20:59:03    阅读次数:154
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!