线程池中的死锁情况
这次死锁发生在什么情况下呢?在最开始写线程池的时候,我设计了线程是可重用的,主要是通过Event信号实现,通过在每个线程核心工作代码执行完毕后会将自己归还到池中,然后等待Event信号。主线程会以循环超时阻塞的方式监视一个任务队列,当发现有任务时便会从线程池中取出一个线程,并设置它的任务和目标函数,然后去start或者resume,resume就是会设置Event信号让线程不再阻塞,这里,从池中取线程的方法_get和归还线程方法returnThread都已经加锁,_get和return...
分类:
编程语言 时间:
2014-07-23 17:15:01
阅读次数:
333
一、什么是事务事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml(数据操作语言,增删改,没有查询)语句要么全部成功,要么全部失败。如:网上转账就是典型的要用事务来处理,用于保证数据的一致性。二、事务和锁当执行事务操作时(dml语句),oracle会在被作用的表上加锁,防止其它用户修...
分类:
数据库 时间:
2014-07-23 16:58:21
阅读次数:
314
1.互斥量(QMutex)
头文件声明: #include
互斥量声明: QMutex m_Mutex;
互斥量加锁: m_Mutex.lock();
互斥量解锁: m_Mutex.unlock();
2.等待条件(QWaitCondition)
头文件声明: #inc...
分类:
其他好文 时间:
2014-07-23 13:20:44
阅读次数:
489
总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络。其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式;数据库用起稍烦锁一些,但它有它的优点,比如在海量数据时性能优越,有查询功能,可以加密,可以加锁,可以跨应用,跨平台等等;网络,则用于比较重要的事情,比...
分类:
移动开发 时间:
2014-07-22 22:46:52
阅读次数:
384
synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程A,没有的话,直接运行 它包括两种用法:synchronized .....
分类:
编程语言 时间:
2014-07-22 00:23:35
阅读次数:
547
读写锁在多线程应用中经常用到。适用于读线程多余写线程的场合。对读线程读取共享资源时不加锁,而对写线程写共享资源时进行加锁控制。先说一下读线程控制:只要此时没有写操作,就可以进行读取。一旦有写操作,则阻塞等待。对于写线程来说,如果此时有读线程正在读取资源,则等待其读取完,然后判断是否所有的读线程是否已...
分类:
其他好文 时间:
2014-07-19 09:25:42
阅读次数:
167
Multiversion Concurrency ControlMVCC避免了许多需要加锁的情形以及降低消耗。这取决于它实现的方式,它允许非阻塞读取,在写的操作的时候阻塞必要的记录。MVCC保存了某一时刻数据的一个快照。意思就是无论事物运行了多久,它们都能看到一致的数据。锁的策略 ...
分类:
数据库 时间:
2014-07-16 19:55:50
阅读次数:
238
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据
=========================================================...
分类:
编程语言 时间:
2014-07-14 18:10:05
阅读次数:
279
§1. InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!§2.由于MySQL的行锁是针对索引加的锁,不是针...
分类:
数据库 时间:
2014-07-14 10:46:24
阅读次数:
239
众所周知,windows平台上实现线程同步,或者说资源的加锁与解锁的方法有内核事件、临界区、互斥量、信号量,甚至interlocked系列函数等多种手段。但是在日常的编程中,我们使用这些手段对 “多个线程同时对同一个资源进行读写”
的时候,在读写之前先要对资源假锁,读写完之后要对资源解锁。
设想这样一种情况,有一个ftp服务器,每天有很频繁的对这个ftp服务的文件进行下载,但是几乎好几天才会对...