避免死锁的方法有哪些

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.避免死锁的方法有哪些?答案:有一种最简单的就是:全部程序禁用,然后重启自己需要的程序。用行级锁,不去征用大表的主键,用小事务。

2.在Sybase数据库中注册用户与数据库用户有什么区别?

答案:Sybase中没有注册用户数这个说法,如果是LICENSE中的,技术上可以忽略,用户数EE版可以设很大,几万,SMB版可以设256个。

3.在MS SQL_Server 数据库中通过什么约束保证数据库的实体完整性

答案:可以通过建立唯一的索引、PRIMARY KEY约束、UNIQUE约束或IDENTITY约束来实现实体完整性

4.内存有哪几种存储组织结构.请分别加以说明

5.JA V A中的Wait() 和notify()方法使用时应注意些什么?

答案:Wait()和notify():如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。一般用在synchronized机制中例如:线程Asynchronized(obj) {while(!condition) {obj.wait();}obj.doSomething();} 当线程A获得了obj锁后,发现条件condition不满足,无法继续下一处理,于是线程A就wait()。在另一线程B中,如果B更改了某些条件,使得线程A的condition条件满足了,就可以唤醒线程A:线程Bsynchronized(obj) {condition = true;obj.notify();}需要注意的概念是:◆调用obj的wait(),notify()方法前,必须获得obj锁,也就是必须写在synchronized(obj){……} 代码段内。◆调用obj.wait()后,线程A就释放了obj的锁,否则线程B无法获得obj锁,也就无法在synchronized(obj){……} 代码段内唤醒A. ◆当obj.wait()方法返回后,线程A需要再次获得obj锁,才能继续执行。◆如果A1,A2,A3都在obj.wait(),则B调用obj.notify()只能唤醒A1,A2,A3中的一个(具体哪一个由JVM决定)。◆obj.notifyAll()则能全部唤醒A1,A2,A3,但是要继续执行obj.wait()的下一条语句,必须获得obj锁,因此,A1,A2,A3只有一个有机会获得锁继续执行,例如A1,其余的需要等待A1释放obj锁之后才能继续执行。

◆当B调用obj.notify/notifyAll的时候,B正持有obj锁,因此,A1,A2,A3虽被唤醒,但是仍无法获得obj锁。直到B退出synchronized块,释放obj锁后,A1,A2,A3中的一个才有机会获得锁继续执行。

6.用户输入一个整数.系统判断,并输出是负数还是非负数,请设计测试用例.

7.操作系统中的同步和互诉解决了什么问题

答案:同步:各个进程不知对方名字,但通过某些对象(如I/O缓冲区)的共同存取来协同完成一项任务。互斥:互斥跟临界资源有关,因为计算机的某些资源有限,所以必须通过互斥操作防止进程之间竞争临界资源而发生死锁,互斥操作用PV原语实现。

8.UNIX 中init

1.不许用中间变量,把String ABCDE 倒转

public class StringDemo { public static void main(String[]args) { String str="ABCD"; for (int i = str.length()-1; i >=0; i--) { str+=String.valueOf(str.charAt(i)); } str=str.substring("ABCD".length(), str.length()); System.out.println(str); } }

2.10000个数求第2大的数,不许用排序算法

3.排序算法的测试用例

1, 合并有序链表

2, 删除字符串中相邻重复元素

3, 给出了二叉树结构,要求写出广度优先遍历

4, 给定整型数组,写代码找出数组中第二大元素

5, 有关菲波那契数列问题

1.怎么判断鼠标有没有选中一条线段(如很靠近,鼠标点和线段之间的距离小于5毫米)

2.求一个矩形的中心点和一个点的连线与矩形边的交点坐标(矩形左上角坐标给出,长、宽给出,中心点坐标可以算出来,另外一个点的坐标给出)

3.写一个servlet,要求实现在一个页面中能输入名字,然后页面中返回的结果是“hello,姓名”。

4.写一个servlet,要求能上传文件,并能将上传的文件保存到指定位置。

业务协同于一体的完整信息化支撑平台。

相关文档
最新文档