设T1和T2两个事务,他们对数据data的并发操作如下表所示(SLOCK data表示对数据data上S锁,UNLOCK data表示对数据data解锁),对这个并发操作,下面说法正确的是______。 T1 T2 ①请求 SLOCK data 读 data=20 ② ③A=A+30 写回 A=50 COMMIT UNLOCK data ④ 请求 SLOCK data 读data=20 写回data=50 COMMIT UNLOCK data
A: 该操作部能重复读
B: 该操作符合完整性要求
C: 该操作的第①步中,事务T1应该申请X锁
D: 该操作的第②步中,事务T2不可能得到对data的锁
A: 该操作部能重复读
B: 该操作符合完整性要求
C: 该操作的第①步中,事务T1应该申请X锁
D: 该操作的第②步中,事务T2不可能得到对data的锁
C
举一反三
- 设有两个事务T1、T2,他们对数据A的并发操作如下: ------------------------------------ T1 T2 ------------------------------------ (1) 请求SLOCK A 读A=18 (2) 请求SLOCK A 读A=18 (3) A=A+10 写回 A=28 COMMIT UNLOCK A (4) 写回 A=18 COMMIT UNLOCK A --------------------------------------- 根据三级封锁协议对这个并发操作进行分析,下面评价正确的是( )。
- 设T1和T2两个事务,它们对数据A的并发操作如图7.5所示(其中SLOCK A表示对数据A上S锁,UNLOCK A表示对数据A解锁,COMMIT表示提交操作)。对这个并发操作,下面5个评价中的该操作丢失修改和()两条评价是正确的。[img=233x241]17e3a3bd8902cea.png[/img] A: 该操作不能重复读 B: 该操作丢失修改 C: 该操作符合完整性要求 D: 该操作的第(1)步中,事务T1应申请X锁 E: 该操作的第(2)步中,事务T2不可能得到对A的锁
- 已知有n个数据进行排序,下面能实现排序的是 A: data=[34,5,-6,12,87,29]data.sort() B: data=[34,5,-6,12,87,29]n=len(data)od=[]whileiwhilejifdata[j]>data[j+1]:t=data[j]data[j]=data[j+1]data[j+1]=tj+=1i+=1 C: data=[34,5,-6,12,87,29]n=len(data)i=0j=0whileiwhilejifdata[j]>data[j+1]:t=data[j]data[j]=data[j+1]data[j+1]=tj+=1i+=1print(data) D: data=[34,5,-6,12,87,29]n=len(data)i=0j=0whileiwhilejifdata[i]>data[j]:t=data[i]data[i]=data[j]data[j]=tj+=1i+=1
- 写出下面算法的功能。Bitree*function(Bitree*bt){Bitree*t,*t1,*t2;if(bt==NULL)t=NULL;else{t=(Bitree*)malloc(sizeof(Bitree));t->data=bt->data;t1=function(bt->left);t2=function(bt->right);t->left=t2;t->right=t1;}return(t);}
- 在一个单链表中的P所指结点之前插入一个s所指结点时,可执行如下操作 ① s->next=_______ ② p->next=s; ③ t=p->data; ④ p->data=______; ⑤ s->data=t;
内容
- 0
请问以下四个赋值操作中,哪一个操作可以得到一个字典类型的数据? A: >>>data = ('Zhangsan', 18) B: >>>data = ['Zhangsan', 18] C: >>>data = {'Zhangsan': 18} D: >>>data = "'Zhangsan', 18"
- 1
已知有如下定义:struct a{char x; double y;}data,*t;若有t=&data,则对data中的成员的正确引用是()。
- 2
有如下程序 #include intchange(int*data) { *data=*data%2; return(*data)+1; } main() { intdata=12; change(&data); printf("%d,",data); data=change(&data); printf("%d,",data); } 程序运行后的输出结果是()
- 3
设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是▁▁▁▁▁。 T1事务 T2事务 (1)读A=10 (2) 读A=10 (3)A=A-5 写回 (4) A=A-8 写回 A: 该操作不存在问题 B: 该操作丢失修改 C: 该操作不能重复读 D: 该操作读“脏”资料
- 4
已知有如下定义:struct a{char x; double y;}data,t;若有t=&data,则对data中的成员的正确引用是() A: (t).data.x B: (t).x C: t->data.x D: t.data.x