2
,
死锁的必要条件?怎么克服?
答:系统的资源不足,进程的推进的顺序不合适,资源分配不当,一个资源
每次只能被一个进程使用,
一个资源请求资源时,
而此时这个资源已阻塞,
对已
获得资源不放,进程获得资源时,未使用完前,不能强行剥夺。
什么是死锁?死锁(
Deadlock
):是指两个或两个以上的进程在运行过程中,
因争夺资源而造成的一种互相等待
(谁也无法再继续推进)
的现象,
若无外力作
用,它们都将无法推进下去。死锁的四个必要条件
互斥条件(
Mutual exclusion
):资源不能被共享,只能由一个进程使用。
请求与保持条件(
Hold and wait
):已经得到资源的进程可以再次申请新的资
源。
非剥夺条件(
No pre-emption
):已经分配的资源不能从相应的进程中被强制
地剥夺。
循环等待条件(
Circular wait
):系统中若干进程组成环路,该环路中每个进
程都在等待相邻进程正占用的资源。
处理死锁的策略
1.
忽略该问题。
例如鸵鸟算法,
该算法可以应用在极少发生死锁的的情况下。
为
什么叫鸵鸟算法呢,
因为传说中鸵鸟看到危险就把头埋在地底下,
可能鸵鸟觉得
看不到危险也就没危险了吧。跟掩耳盗铃有点像。
2.
检测死锁并且恢复。
3.
仔细地对资源进行动态分配,以避免死锁。
4.
通过破除死锁四个必要条件之一,来防止死锁产生。
3
,
接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继
承实体类?
答:
接口是可以继承接口的,
抽象类是可以实现接口的,
抽象类可以继承实
体类,但是有个条件,条件是,
实体类必须要有明确的构造函数
。
4
,
构造器
Constructor
是否可以被继承?是否可以被
Override?
答:
Constructor
不可以被继承,因此不能被重写(
Overriding
),但可以
被重载
(Overloading).
5,
是否可以继承
String
类?
答:因为
String
类是
final
类所以不可以继承
string
类。
5
,
当一个线程进入一个对象的方法后,
其它线程是否可以进入该对象的方
法?
答:不可以,一个对象的方法只能由一个线程访问。