第二十二章 多线程
笔试题
一、填空题
二、选择题
三、名词解释
四、问答题
1. 【提高题】请谈谈进程和线程有什么区别?
答:
进程一般是对操作系统而言的。例如,你打开word编辑文档,同时打开outlook收取邮件。我们可以说这时系统内有两个进程在运行。即多个程序几乎在同一时间执行多个任务。
线程一般是对某一程序而言的。如上例,你打开outlook收新邮件的同时,还可以看已下载的邮件,这两件事没有相互干扰,那么我们说此时这一程序中至少有两个线程在运行。即每一个程序在同一时间内执行多个任务。
2. 【中等题】多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
3. 【中等题】sleep() 和 wait() 有什么区别?
答:
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级 (b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
4. 【中等题】启动一个线程是用run()还是start()?
答:
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。
5. 【中等题】请说出你所知道的线程同步的方法。
答:
wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉 InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
6. 【提高题】请描述出线程存在的几种状态?
答:
1) 线程可以正在运行(running)。只要获得CPU时间它就可以运行。
2) 运行的线程可以被挂起(suspend),并临时中断它的执行。
3) 一个挂起的线程可以被恢复(resume,允许它从停止的地方继续运行。
4) 一个线程可以在等待资源时被阻塞(block)。
5) 在任何时候,线程可以终止(terminate),这立即中断了它的运行。一旦终止,线程不能被恢复。
7. 【提高题】当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
答:
不能,一个对象的一个synchronized方法只能由一个线程访问。
第二十三章 网络编程
笔试题
一、填空题
二、选择题
三、名词解释
1. 【中等题】TCP:Transmission Control Protocol传输控制协议
是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
2. 【中等题】UDP:User Datagram Protocol用户数据报协议
UDP是无连接通信协议,UDP不保证可靠数据的传输,但能够向若干个目标发送数据,接收发自若干个源的数据。简单的说,如果一个主机向另外一台主机发送数据,这一数据就会立即发出,而不管另外一台主机是否已准备接收数据。如果另外一台主机收到了数据,它不会确认收到与否。
3. 【基础题】IP:Internet Protocol互联网协议
4. 【基础题】LAN:local area network局域网
5. 【基础题】WAN:wide area network广域网
四、问答题
1. 【提高题】什么是网络通信协议
答:
计算机网络中实现通信必须有一些约定即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。
2. 【提高题】 网络通信接口
答:
为了使两个结点之间能进行对话,必须在它们之间建立通信工具(即接口),使彼此之间 能进行信息交换。接口包括两部分:
硬件装置:实现结点之间的信息传送
软件装置:规定双方进行通信的约定协议
3. 【提高题】你能说出TCP/IP的7层协议吗?
答:
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层