读写锁:多个读锁不互斥,读锁与些锁互斥,写锁与写锁互斥。即:读的时候不允许写,写的时候不允许读,可以同时读。 synchronized关键字和普通的Lock构造的锁,会造成读与读之间的互斥,因此读写锁可提高性能。例子1:三个线程同时对一个共享数据进行读写。import java.util.Rand....
分类:
其他好文 时间:
2015-12-11 22:16:19
阅读次数:
179
FreeRTOS提供了几个内存堆管理方案,有复杂的也有简单的。其中最简单的管理策略也能满足很多应用的要求,比如对安全要求高的应用,这些应用根本不允许动态内存分配的。 FreeRTOS也允许你自己实现内存堆管理,甚至允许你同时使用两种内存堆管理方案。同时实现两种内存堆允许任务堆栈和其它RTOS对象放置到快速的内部RAM,应用数据放置到低速的外部RAM。 每当创建任务、队列、互斥量...
分类:
其他好文 时间:
2015-12-10 19:36:55
阅读次数:
472
1. 基本概念一个Unix进程可以理解为一个线程加上地址空间、文件描述符和其他数据。异步表明事情相互独立发生, 除非有强加的依赖性。并发指实际可能是穿行发生的事情好像同时发生一样。并行指并发序列同时执行。线程安全是指代码能够被多个线程调用而不会产生灾难性后果。2. 共享数据——同步对象——互斥量——...
分类:
其他好文 时间:
2015-12-09 11:23:51
阅读次数:
113
学习任务:1. 掌握三种并发的方式:进程、线程、I/O多路复用2. 掌握线程控制及相关系统调用3. 掌握线程同步互斥及相关系统调用1.并发的意义概念:只要逻辑控制流在时间上重叠,那么就可以称为并发。意义:访问慢速设备(如I/O设备):【CPU可以在这样的慢速中“腾出手”再去做其他事情,使自己保持“繁...
分类:
其他好文 时间:
2015-12-07 00:05:17
阅读次数:
209
跨平台的原子性操作,适合C开发人员借鉴.采用编译器提供的原子性操作和操作系统提供的中断函数,实现原子锁. 性能很好,比互斥量开销小一半多.
分类:
其他好文 时间:
2015-12-06 21:06:49
阅读次数:
317
atomic : 变量默认是有该有属性的,这个属性是为了保证在多线程的情况下,编译器会自动生成一些互斥加锁的代码,避免该变量的读写不同步的问题。 nonatomic : 如果该对象无需考虑多线程的情况,这个属性会让编译器少生成一些互斥代码,可以提高效率。atomic 的意思是setter/gett....
分类:
移动开发 时间:
2015-12-06 17:33:14
阅读次数:
174
1.死锁原理根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。死锁的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。请求与保持条件(Hold and wait)...
分类:
数据库 时间:
2015-12-05 14:28:01
阅读次数:
282
以下内容有错误请指正,为个人理解和经验。c#提供三种互斥Monitor类、Lock和Mutex类,他们的区别和使用方法如下:一、Lock类名叫“临界区”,为Monitor的封装版,用于多线程,对单线程无用,即支持在同一个线程内多次调用lock锁定同一个目标。用法 lock (t...
互斥同步互斥同步(Mutual Exclusion & Synchronization)是常见的一种并发正确性保证手段。同步是指子啊多个线程并发访问共享数据时,保证共享数据在同一时刻只能被一个(或者是一些,使用信号量的时候)线程使用。而互斥是实现同步的一种手段,临界区(Critial Section...
分类:
其他好文 时间:
2015-12-03 00:34:27
阅读次数:
333
一、多线程的安全隐患资源共享1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源比如多个线程访问同一个对象、同一个变量、同一个文件当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题所以很自然的,当某个线程进入某个事件,处理某个事件,访问某个对象的时候,先加 “锁”互斥锁的优缺点...
分类:
编程语言 时间:
2015-11-30 22:11:18
阅读次数:
203