当前位置:首页 > 职场文档 > 面试题

java事务面试题

时间:2022-12-06 16:50:02 作者:刘老师 字数:2693字

  事务是如何工作的?

在一个事务中,如果当前正在进行的事务是线程安全的(即线程不会阻塞),则不会执行其他事务。

在多个事务中,一个进程只有一次机会检查是否有任何线程未被阻塞的事件发生。

当一个事务执行时,若要对该事务中的变量进行访问操作,则必须使用“location”方法;若要停止对该事务中的变量进行访问操作,则只需要使用“return”方法即可。

当在多个不同的线程中执行一个共同关心的代码时,就称为异步操作,而每个线程都关心自身。

因此在多个并发用户时,异步操作是允许的。

1.事务类型

  事务一般可以分为两种:

一种是异步事务,即我们常说的 redis;

另一种是锁的事务,即事务是锁的;

在实际的应用中,可能会用到其他一些类型来区分事务,如:锁的事务。

注: redis ()方法和 location ()方法都是异步事务。

1.事务类型

2.事务代码

  事务中的函数用来实现数据的写入和读取,并且在事务失败时能保证该函数在数据库中的执行。

当数据库对象(Database)被访问时,一个进程首先会调用一个 Database函数,然后对该对象进行处理,如果有未读和未修改的记录则执行。

事务代码是用来处理事务操作以及相关信息的,所以在事务中不能有其他操作。

因为是写数据库对象的,所以用来描述数据写入和读取相关操作。

事务代码可以作为数据库执行各种操作时需要调用的函数库。

2.事务代码

3.事务过程

  事务的执行过程:

在事务中,要判断当前正在进行的事务是否为线程安全。

当一个事务在内存中被等待时,会检查是否有事件发生(即判断当前业务是否已经完成)。

如果在此期间发生了其他事情,则不能继续执行操作;否则将结束任务并返回线程安全的情况。

当一个事务被停止时,要恢复该事务的工作,只需要执行 return或者 reflect两个方法即可。

在一个事务被暂停后,会从当前操作中抽取数据重新开始新的操作;否则将直接关闭当前所调用程序。

3.事务过程

4.并发控制

  并发控制是对线程安全和操作安全性的基本保证。

线程安全:指在多个进程中,不允许其他进程阻塞自己的进程,除非其他进程将自己阻塞了。

线程安全:指在一个进程中,不能同时对两个以上的对象进行访问操作,且必须等待一定时间后才能再次访问这些对象。

并发控制:当程序需要多个线程一起操作时,可以通过并发控制来保证并发执行的顺序和速度。

4.并发控制