先说说线程
在多线程中,为了保证共享资源的正确性,我们常常会用到线程同步技术.
将一些敏感操作变成原子操作,保证同一时刻多个线程中只有同一个线程在执行这个原子操作。
我最常用的是互斥锁,也称独占锁。其次还有读写锁,信号量,条件变量等。
除此之外,我们在进程间通信时会用到信号,向某一个进程发送信号,该进程中设置信号处理函数,然后当该进程收到信号时,执行某些操作。
其实在线程中,也可...
分类:
编程语言 时间:
2015-04-16 17:34:25
阅读次数:
217
PHP自带Session隐患(session文件独占锁引起阻塞) PHP默认的会话处理器是session.save_handler = files(即文件)。如果同一个客户端同时并发发送多个请求(如ajax在页面同时发送多个请求),且脚本执行时间较长,...
分类:
Web程序 时间:
2015-04-08 11:17:05
阅读次数:
128
PHP自带Session隐患(session文件独占锁引起阻塞)PHP默认的会话处理器是session.save_handler = files(即文件)。如果同一个客户端同时并发发送多个请求(如ajax在页面同时发送多个请求),且脚本执行时间较长,就会导致session文件阻塞,影响性能。因为对于...
分类:
Web程序 时间:
2015-04-08 10:42:33
阅读次数:
135
1.RR隔离级别:在此隔离级别下, DB2会锁住所有相关的纪录。在一个SQL语句执行期间,所有执行此语句扫描过的纪录都会被加上相应的锁。具体的锁的类型还是由操作的类型来决定,如果是读取,则加共享锁;如果是更新,则加独占锁。由於会锁定所有為获得SQL语句的结果而扫描的纪录,所以锁的数量可能会很庞大,这...
分类:
数据库 时间:
2015-03-20 20:18:35
阅读次数:
240
读写锁的概念很简单,允许多个线程同时获取读锁,但同一时间只允许一个线程获得写锁,因此也称作共享-独占锁。在C#中,推荐使用ReaderWriterLockSlim类来完成读写锁的功能。某些场合下,对一个对象的读取次数远远大于修改次数,如果只是简单的用lock方式加锁,则会影响读取的效率。而如果采用读...
摘自: http://www.cnblogs.com/52XF/p/4239056.html以备自查 如侵权,请告知
分类:
Web程序 时间:
2015-01-30 17:12:49
阅读次数:
984
CopyOnWriteArrayList是一种线程安全的ArrayList,顾名思义,它会利用写时拷贝技术,它对共享对象做仅仅读操作的时候,大家都用一个共享对象,假设有可变的操作时,就会复制一份出来,然后在新的拷贝上进行操作。所以可变操作的开销就会比較大,当然,在运行复制前,须要上独占锁,这样保证在...
分类:
编程语言 时间:
2015-01-25 20:56:47
阅读次数:
148
在使用TFS进行源代码管理的时候VS默认允许多个签出,但在团队开发中往往需要设置独占锁(排他锁)避免冲突,设置独占锁不需要在TFS的网页里面进行设置,只需要在VS里面进行设置即可。一、取消启用多个签出 1、打开VS2013--团队--团队项目设置--源控件--签出设置--去掉"启用多个签出"的...
分类:
Web程序 时间:
2015-01-21 18:03:25
阅读次数:
210
1 锁的独占与共享
java并发包提供的加锁模式分为独占锁和共享锁,独占锁模式下,每次只能有一个线程能持有锁,ReentrantLock就是以独占方式实现的互斥锁。共享锁,则允许多个线程同时获取锁,并发访问 共享资源,如:ReadWriteLock。AQS的内部类Node定义了两个常量SHARED和EXCLUSIVE,他们分别标识 AQS队列中等待线程的锁获取模式。
很显...
分类:
编程语言 时间:
2014-12-31 14:40:25
阅读次数:
232
每一个对象都有一把独占锁。独占锁只限制线程对它的同步方法的访问,对非同步方法,独占锁没有意义。
synchronized关键字可以作为函数的修饰符,也可以作为函数内的语句,也就是平时说的同步方法和同步代码块。如果再细分的话,synchronized可以作用域instance变量、对象引用、static函数和类上。
不过无论synchronized关键字加载方法上还是对象上,它取...
分类:
编程语言 时间:
2014-12-23 17:25:00
阅读次数:
232