悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op ...
分类:
其他好文 时间:
2017-08-01 16:30:53
阅读次数:
94
在多线程中,为了提高效率有些共享资源同意同一时候进行多个读的操作,但仅仅同意一个写的操作,比方一个文件,仅仅要其内容不变能够让多个线程同一时候读,不必做排他的锁定,排他的锁定仅仅有在写的时候须要,以保证别的线程不会看到数据不完整的文件。这时候就须要使用读写锁。/** * 简单读写锁demo * @a ...
分类:
编程语言 时间:
2017-07-10 18:10:55
阅读次数:
115
多线程中。在相互排斥量和 读写锁的 属性中。都有一个叫 进程共享属性 。 对于相互排斥量,查询和设置这个属性的方法为: pthread_mutexattr_getpshared pthread_mutexattr_setpshared 我一開始不理解什么是 进程共享属性。 看了man中的说明例如以下 ...
分类:
编程语言 时间:
2017-07-09 13:48:49
阅读次数:
175
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架。包括服务端组件、client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。HP-Socket 对通信层实现 ...
分类:
其他好文 时间:
2017-07-09 12:43:46
阅读次数:
418
这种情况一般多个线程读是不需要加锁的。就在写的时候需要加锁。 那么要做的就是让不写的时候,读不受同步限制。让多线程自由的读。 这个时候就要用读写锁 boost已经有读写锁,而c++ 14才有读写锁。 ...
分类:
编程语言 时间:
2017-07-06 22:03:58
阅读次数:
240
悲观锁:修改数据之前先对该记录加锁,该期间别的线程无法修改该记录,等提交之后其他线程才可以获得锁,例如:数据库行锁,表锁,写锁,都是悲观锁 乐观锁:每次去获取数据不会加锁,但是更新记录的时候会判断一下当前记录是否和自己读取的是否一致,不一致重新读取,再更新,大都是通过版本号判断当前记录和自己读取的记 ...
分类:
其他好文 时间:
2017-07-05 13:35:15
阅读次数:
148
CreateTime--2017年7月3日10:16:14Author:Marydon 设置间隔指定时间电脑自动锁屏 参考地址:电脑爱好者杂志 举例:实现每间隔45分钟,电脑自动锁屏 实现思路: 第一步:编写锁屏命令; 第二步:制定计划。 实践: 1.编写锁屏命令 新建一个txt文件,重命名为:lo ...
分类:
其他好文 时间:
2017-07-03 11:54:47
阅读次数:
135
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。本系列文章将分析JAVA中常见的锁以及其特性,为大家答疑解惑。 1、自旋锁 2、自旋 ...
分类:
编程语言 时间:
2017-06-28 23:21:08
阅读次数:
226
mysql表优化 简要: 一、分析表 二、检查表 三、优化表 四、表数据导入 五、锁表操作 一、分析表 1.1、命令: ANALYZE [NO_WRITE_TO_BINLOG | LOCAL]TABLE tbl_name [, tbl_name] ... 1.2、作用: 本语句用于分析和存储表的ke ...
分类:
数据库 时间:
2017-06-28 09:20:39
阅读次数:
318
有一种单一写线程。多个读线程并发的场景,比方測量数据的读取与更新,消费者会比較多。生产者仅仅有一个。下面图为例: 左側是一种经典的解法,对数据整个操作加锁。为了一个写数据线程,于将全部读线程也进行加锁显然有点浪费了。于是提出读写锁(Reader/Writer Lock), 即使是使用了读写锁。其本质 ...
分类:
其他好文 时间:
2017-06-27 22:11:26
阅读次数:
239