#include #include #include #include #include #include #define CUSTOMER_NUM 10 pthread_mutex_t mutex_x= PTHREAD_MUTEX_INITIALIZER; sem_t sem; int sem_v... ...
分类:
编程语言 时间:
2017-03-17 19:25:33
阅读次数:
190
最近遇到一个棘手的问题,说棘手一方面之前没考虑过,另一方面其中的业务逻辑实在太难看懂了。 以后写代码希望以此为戒吧 1.嵌套层数不要超过3层。 2.逻辑上超过3层的if-else代码可以使用卫语句,或者状态模式来实现。 3.对于高并发业务需要考虑多线程并发问题,互斥锁,死锁等问题。 问题描述: 1. ...
分类:
其他好文 时间:
2017-03-14 19:35:32
阅读次数:
259
转载自:http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清 ...
分类:
编程语言 时间:
2017-03-01 18:10:22
阅读次数:
198
5. 线程的互斥和同步 5.1 同步和互斥的概念 (1)线程同步:是一个宏观概念,在微观上包含线程的相互排斥和线程的先后执行的约束问题。解决同步方式一般采用条件变量和信号量。 (2)线程互斥:线程执行的相互排斥(注意,它不关心线程间执行的先后顺序!)。解决互斥一般使用互斥锁、读写锁和信号量。 【编程 ...
分类:
编程语言 时间:
2017-02-19 00:09:30
阅读次数:
228
JDK5新特性 a,自动拆装箱 b,泛型 c,可变参数 d,静态导入 e,增强for循环 f,互斥锁 g,枚举 JDK7新特性 * A:二进制字面量 * B:数字字面量可以出现下划线 * C:switch 语句可以用字符串 * D:泛型简化,菱形泛型 * E:异常的多个catch合并,每个异常用或| ...
分类:
其他好文 时间:
2017-02-17 21:16:37
阅读次数:
140
两种锁的加锁原理 互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。 自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。 两种锁的区别 互斥锁的起始原始开销要高于自旋锁,但是基本是一劳永逸,临界区 ...
分类:
其他好文 时间:
2017-02-14 13:58:29
阅读次数:
152
个人理解: 信号量(进程间的通信机制(单一个数的信号),与消息邮箱,消息队列,机理类同,量不同,)用信号量肯定掉cpu; 自旋锁:保护区域不掉cpu,持续查找,等待(不可用时域长状态); 切记: 时域范围: 在进程间的通信机制函数状态 ∩ 锁 = 0; 互斥锁与自旋锁 互斥锁:线程会从sleep(加 ...
分类:
其他好文 时间:
2017-02-14 13:56:05
阅读次数:
145
之前在线程高级操作中说到了线程的高级操作包括修改线程的属性和进行线程之间的同步操作。线程的同步有两种方式,一种是使用互斥量一种是使用读写锁。上一篇文章说的是互斥量,这篇文章主要介绍的是读写锁。 读写锁与互斥量类似,但是读写锁相对于互斥量来说最大的特点就是并行性高。互斥锁每次只有一个线程可以得到锁进行 ...
分类:
编程语言 时间:
2017-02-13 00:04:29
阅读次数:
260