关闭

测试行业的面试题---java

670人阅读 评论(0) 收藏 举报
        昨天的面试,很痛苦卷子做了3个小时,20页厚的一本,足足XXXKg。每张有7-8道题目,题目涉及之广令人不寒而栗。做完套题唯一感觉只有一个,看起来很熟悉的知识,往往因为对细节不够了解而使得答题是比较吃力。以下主要是回忆了有关操作系统原理方面的知识,涉及进程、线程、线程同步、死锁等。如果不能理解其含义请自己参考操作系统-内核处理设计原理P204,或者去google下scan。此套题目涉及较多关于thread线程内容,这也是面试大公司Java程序员时必问之处。希望能引起各位的重视,在这个方面多看一些例子确切的理解多线程开发的前因后果,后续测试题目将在下周三参加复试之后,归纳总结后与大家一起探讨。

进程与线程的区别?

额外知识:
windows3.x下最小的运行单位是进程和在windows/NT以上版本最小运行单位是线程,而每一个独立的进程可以由多个进程组成。

什么是线程?
线程是指进程内的一个执行单元,也是进程内的可调度实体.

什么是进程?
进程的基本功能-执行驻留在主存中的机器指令,这些指令以程序的形式提供。

线程与进程的区别:
(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;
(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
(3)线程是处理器调度的基本单位,但进程不是.(应该是在Windows3.x以上的版本中)
(4)二者均可并发执行.

线程同步是指?
安全访问可以控制线程间的同步不发生互斥。
线程同步用途:是确保多个线程对共享资源进行互斥访问。

什么是死锁?
死锁可以被定义成一组竞争系统资源或互相通信的进程间相互的“永远”阻塞。

如何判断何谓死锁,可能发生死锁的三个条件?
三个必要不充分条件:
(1)互斥:一次只有一个进程可以使用资源
(2)占有且等待:当一个进程等待其他资源时,可以占有已分配的资源
(3)非剥夺:不可能从已经占有资源的进程手中强行剥夺资源
实际发生死锁的条件:
(4)循环等待:存在一个封闭的进程链,使得每个进程至少占有
链中下一个进程 所需要的一个资源
假设前三个条件存在,可能发生一系列事件会导致不可解决的循环等待,这个即是死锁的定义

防止死锁发生的策略与办法?
可以把死锁防止分为两类:
(1)间接的死锁防御方法,即防止三个必要条件中的任何一个发生
(2)直接的死锁防御方法,即防止循环等待发生

原来这里涉及多线程Thread,以前没看过,呵呵......
什么是原子性、一致性?
原子性:所谓原子性,是指一个共享资源的所有属性在任何时刻都是一起变化、密不可分的
一致性:所谓一致性,是指一个共享资源的所有属性在变化之后一定会达到一个一致的状态
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:254276次
    • 积分:3850
    • 等级:
    • 排名:第8263名
    • 原创:112篇
    • 转载:64篇
    • 译文:0篇
    • 评论:52条
    文章分类
    最新评论