总所知周,并发容易造成数据的重复处理,我的一个项目给游戏客户端提供了接口,游戏用户相对较多,如果使用数据库排它锁消耗的资源较高,因而使用了文件的排它锁来应对并发。 思路是打开一个文件并取得文件的独占锁,采用的是非阻塞,当程序运行完毕再释放独占锁资源。 /** * 加锁,独占锁 */ public f... ...
分类:
Web程序 时间:
2018-01-30 19:54:51
阅读次数:
169
先看代码 方案一:Redis分布式锁 该方法完美的解决了超卖与select排它锁导致的并发低的问题,并且4个sql缩减成2个sql语句。极大提升性能 方案二:利用redis的原子性操作(incrBy方法、decrBy方法--返回操作之后的值) 利用redis的原子性操作 对于Redis而言,命令的原 ...
分类:
其他好文 时间:
2018-01-23 15:50:55
阅读次数:
266
SQLite是为中小规模的应用程序设计的一个嵌入式的数据库 局限性一: 并发。SQLite的锁机制是粗粒度的,它允许多个读,但是一次只允许一个写。 写锁会在写期间排他地锁定数据库,其他人在此期间不能访问数据库。 SQLite已经采取措施以最小化排它锁所占用的时间。 通常来讲,SQLite中的锁只保持 ...
分类:
数据库 时间:
2018-01-18 11:52:19
阅读次数:
214
一、使用线程的理由 1、可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。 2、可以使用线程来简化编码。 3、可以使用线程来实现并发执行。 二、基本知识 1、进程与线程:进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源。 2、前台线程和 ...
分类:
编程语言 时间:
2018-01-09 16:48:55
阅读次数:
258
本文目录: 线程的简单使用 并发和异步的区别 并发控制 - 锁 线程的信号机制 线程池中的线程 案例:支持并发的异步日志组件 线程的简单使用 常见的并发和异步大多是基于线程来实现的,所以本文先讲线程的简单使用方法。 使用线程,我们需要引用System.Threading命名空间。创建一个线程最简单的 ...
分类:
编程语言 时间:
2017-12-03 21:44:20
阅读次数:
163
数据库的 基本分为 共享锁和排它锁 排它锁顾名思义,不能和其他任何所共存。 以SqlServer中某一行数据为例, 特殊的,WithNoLock 这个是不给数据加上任何锁,所以根本和锁没关系 再说update,update的过程是给这条数据加上排它锁,所以当另外事物过来要求修改这条数据的时候,会由于 ...
分类:
数据库 时间:
2017-11-06 21:18:35
阅读次数:
183
lock基本思路: volitile + CAS +Queue(存放线程) 实现了: 1 可见性(volitile 和 happenedBefor原则共同实现) 与 2 原子性(CAS ,CPU 指令实现) 共享锁和排它锁(ReentrantReadWriteLock): 共享锁与排他锁 共用一个线 ...
分类:
其他好文 时间:
2017-10-17 19:03:23
阅读次数:
135
create table t1( c1 int(10) unsigned not null default '0', c2 int(10) unsigned not null default '0', c3 int(10) unsigned not null default '0', c4 int( ...
分类:
数据库 时间:
2017-09-14 00:37:16
阅读次数:
290
锁的作用:避免并发请求时对同一个数据对象同时修改,导致数据不一致。 怎么加锁: 1.事务T1在对某个数据对象R1操作之前,先向系统发出请求,对其加锁L1. 2.之后,事务T1对该数据对象R1有了相应的控制,在T1释放L1之前,其它事务不能修改R1. 锁类型: 1.排它锁(X)。 2.共享锁(S)。 ...
分类:
数据库 时间:
2017-09-14 00:34:21
阅读次数:
259
原文:浅析SQL Server在可序列化隔离级别下,防止幻读的范围锁的锁定问题 本文出处:http://www.cnblogs.com/wy123/p/7501261.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无... ...
分类:
数据库 时间:
2017-09-11 10:18:12
阅读次数:
190