上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,如今来个复杂点的。这个问题涉及到线程的同步和相互排斥,是一道很有代表性的多线程同步问题,假设能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描写叙述:主线程启动10个子线程并将表示子线程...
分类:
编程语言 时间:
2014-07-10 13:52:16
阅读次数:
298
MySQL purge log简单吗?简单: purge log的功能很简单,purge master logs to 指定一个binlog,然后删除之前的文件系统上的binlog文件,并更新binlog.index文件。复杂: 需要保证purge的原子操作吗, 怎么保证, 有崩溃恢复吗?之前没有读...
分类:
数据库 时间:
2014-07-10 12:32:45
阅读次数:
270
在那片虚空里,其实我终究还是想要抓住些什么东西。感谢这个每天只能睡4个小时的期末考。在真正的黑暗中独自前行,就连一个氢原子都很难碰到。只是一心想要接近应该在深远中的世界的秘密。不去管会走到哪里,究竟能走到哪里。这个被称之为孤独的东西其实是TREASURE.从前的时候,没有熬夜到第二天没有喜欢不喜欢的...
分类:
其他好文 时间:
2014-07-10 00:31:05
阅读次数:
191
sigsuspend是一个原子操作,为了防止信号丢失而存在的,具体含义看下函数原型。int sigsuspend(const sigset_t *mask);先忽略参数,sigsuspend完成的操作是阻塞进程的运行,直到有信号的产生。这样来看与另一个函数的作用相同。pause()加上参数来理解,s...
分类:
其他好文 时间:
2014-07-07 15:48:34
阅读次数:
232
使用的基本模板如下(参考APUE):signal代码序列如下,pthread_mutex_lock...pthread_cond_signalpthread_mutex_unlockwait代码序列如下,while (1){ pthread_mutex_lock(&mutex); ...
分类:
其他好文 时间:
2014-07-07 12:16:56
阅读次数:
236
一、数据库事务1.概念:数据库事务指把一系列数据库操作组成一个单元,要么全部取消,要么全部完成。即提交和回滚操作。2.特性:(1)原子性表示组成一个事务的多个数据库操作是一个不可分隔的原子单元,只有所有的操作执行成功,整个事务才提交,事务中任何一个数据库操作失败..
分类:
系统相关 时间:
2014-07-02 06:39:12
阅读次数:
234
转至:http://blog.sina.com.cn/s/blog_6d7fa49b01014q7p.html很多人会问这样的问题,Linux内核中提供了各式各样的同步锁机制到底有何作用?追根到底其实是由于操作系统中存在多进程对共享资源的并发访问,从而引起了进程间的竞态。这其中包括了我们所熟知的SM...
分类:
系统相关 时间:
2014-06-30 21:31:43
阅读次数:
385
大话Linux内核中锁机制之内存屏障、读写自旋锁及顺序锁在上一篇博文中笔者讨论了关于原子操作和自旋锁的相关内容,本篇博文将继续锁机制的讨论,包括内存屏障、读写自旋锁以及顺序锁的相关内容。下面首先讨论内存屏障的相关内容。三、内存屏障不知读者是是否记得在笔者讨论自旋锁的禁止或使能的时候,提到过一个内存屏...
分类:
系统相关 时间:
2014-06-30 21:21:29
阅读次数:
472
1 什么是redis
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一...
分类:
其他好文 时间:
2014-06-30 20:25:48
阅读次数:
205
activeMq系统间数据异步传递接收,异步队列系统内数据异步传递接收的方法插入数据库表、缓存、写入服务器文件activiti工作流springhibernate事务不仅仅应用于数据库修改,事务是指必须一致性(要么都成功,要么都不成功)。原子性。持久性。还用在调用接口,保证接口调用成功。(两步调用,...
分类:
其他好文 时间:
2014-06-29 20:27:56
阅读次数:
216