线程中的悲观锁和乐观锁 java中乐观锁和悲观锁

线程中的锁可以分为乐观锁和悲观锁,这两个都是实现锁机制的两种办法。

悲观锁:根据字面意思,悲观,就是不是太好的。当一个线程访问这个数据的时候,悲观锁会把这个数据给锁住,不被其他线程所访问,直到这个线程完成了对数据的提交后,其他线程才能够访问或者操作。这样就带来了不便,比如,我们在进行网上订票的时候,一个用户访问了这个系统,访问了这个系统中数据库的数据,就把这个数据给锁住了,这样其他用户根本就看不到数据。这样显然不行,我们想要的效果是用户都可以访问数据,但是只有一个用户提交对这个数据的修改。这就要乐观锁。

乐观锁:当用户要对这个数据进行修改操作时,才把这个数据锁住,也就是实现了一个用户提交操作的用途,它的好处是,用户在查看的时候,数据并没有锁住,当要修改提交的时候,把数据锁住,当其他用户再要提交修改时,就不能修改了。其中的乐观锁里面有一个版本控制器,当修改后,版本就+1,其他用户现在的版本还是0,这样在提交的时候,发现版本号低于现在的,所以,要更新,之后在进行修改。

线程中的悲观锁和乐观锁 java中乐观锁和悲观锁

  

爱华网本文地址 » http://www.aihuau.com/a/25101010/29681.html

更多阅读

MFC多线程CWinThread的使用方法转 cwinthread run

CWinThread的使用方法CWinThread类成员数据成员 m_bAutoDelete 指定线程结束时是否要销毁对象 m_hThread 当前线程的句柄 m_nThreadID 当前线程的ID m_pMainWnd 保存指向应用程序的主窗口的指针 m_pActiveWnd 指向容器应用程序的主

多线程的使用(Delphi) delphi多线程实例

TThread在Classes单元中声明,直接从TObject继承下来的,因为,它不是组件.TThread是个抽象类,所以不能创建TThread的实例,而只能创建其派生类的实例.利用TThread类来编写多线程应用程序的一般步骤如下:[步骤一]从TThread类派生出一个

进程线程区别,进程间通信方式 进程和线程的通信方式

今天阿里云面试,平时感觉挺熟悉的问题,却答的不好~ 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

声明:《线程中的悲观锁和乐观锁 java中乐观锁和悲观锁》为网友沉醉红颜分享!如侵犯到您的合法权益请联系我们删除