java中锁的概念及运用

java中锁的概念及运用

ID:34723779

大小:113.68 KB

页数:16页

时间:2019-03-10

java中锁的概念及运用_第1页
java中锁的概念及运用_第2页
java中锁的概念及运用_第3页
java中锁的概念及运用_第4页
java中锁的概念及运用_第5页
资源描述:

《java中锁的概念及运用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一、锁的概念及分类ORACLE数据库是现今数据库领域应用最广泛的,同时它也是一个庞大的系统,全面了解它、玩转它不但需要一定的理论知识,更需要开发经验与工程经验。本人是ORACLE一爱好者,以下是本人对ORACLE锁的一些经验,希望能与大家共同分享。  ORACLE锁具体分为以下几类:1.按用户与系统划分,可以分为自动锁与显示锁  自动锁:当进行一项数据库操作时,缺省情况下,系统自动为此数据库操作获得所有有必要的锁。  显示锁:某些情况下,需要用户显示的锁定数据库操作要用到的数据,才能使数据库操作执行得更好,显示锁是用户为

2、数据库对象设定的。2.按锁级别划分,可分为共享锁、共享更新锁、排它锁  共享锁:共享锁使一个事务对特定数据库资源进行共享访问——另一事务也可对此资源进行访问或获得相同共享锁。共享锁为事务提供高并发性,但如拙劣的事务设计+共享锁容易造成死锁或数据更新丢失。     ―锁定表      ―仅允许其他用户执行查询操作      ―不能插入、更新和删除      ―多个用户可以同时在同一表中放置此锁       ―locktabletable_name      ―insharemode[nowait];      ―rollb

3、ack和commit命令释放锁     ―nowait关键字告诉其他用户不用等  共享更新锁           ―锁定要被更新的行          ―允许其他用户同时查询、插入、更新未被锁定的行            ―在SELECT语句中使用“FORUPDATE”子句,可以强制使用共享更新锁           ―允许多个用户同时锁定表的不同行          加锁的两种方法         1locktabletab_nameinshareupdatemode;         2selectcolumn1,c

4、olumn2         fromgoods        wheregoods         wheregid=1001        forupdateofcolumn1,column2  排它锁:事务设置排它锁后,该事务单独获得此资源,另一事务不能在此事务提交之前获得相同对象的共享锁或排它锁。         ―与其他两种锁相比,排他锁是限制性最强的表锁         ―仅允许其他用户查询数据         ―不允许执行插入、删除和更新操作         ―在同一时间仅允许一位用户在表上放置排他锁   

5、      ―共享锁与此相反         locktabletab_nameinexclusivemode;         locktable<表名>[<表名>]...         insharemode[nowait]         locktable<表名>[<表名>]...         inexclusivemode[nowait]        locktable<表名>[<表名>]...        inshareupdatemode[nowait]3.按操作划分,可分为DML锁、DDL锁  

6、+DML锁又可以分为,行锁、表锁、死锁    -行锁:当事务执行数据库插入、更新、删除操作时,该事务自动获得操作表中操作行的排它锁。             手动锁定方式:SELECT…FORUPDATE子句                      ―在表的一行或多行上放置排他锁                      ―用于防止其他用户更新该行                       ―可以执行除更新之外的其他操作                     ―select*fromgoodswheregid=10

7、01                     ―forupdateofgname;                   ―只有该用户提交事务,其他用户才能够更新gname                    FORUPDATEWAIT子句                   ―Oracle9i中的新增功能                  ―防止无限期地等待锁定的行                  ―等待间隔必须指定为数值文字                  ―等待间隔不能是表达式、赋值变量或PL/SQL     

8、              变量                  ―select*fromgoodswheregid=1001forupdateofgnamewait3                  ―等待用户释放更新锁的时间为3秒,否则超时。    -表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。