第8章问答题及作业题
第8章问答题
1、线程和进程是什么关系?
2、线程有几种状态?
3、引起线程中断的常见原因是什么?
4、一个线程执行完run()方法后,进入了什么状态?该线程还能再调用start()方法吗?
5、线程处于什么状态时,调用isAlive()方法返回的值是false?
6、线程调用interrupt()的作用是什么?
7、将例8-9中Bank类中的saveOrTake()方法前的synchronized修饰去掉。然后重新编译、运行例8-9,注意观察运行结果。
8、wait()、notify()和notifyAll()的作用分别是什么?
9、将例子10中的TicketSeller类中出现的循环条件:
while(fiveNumber<1)
改写成:
if(fiveNumber<1)
是否合理,说明你的理由。
10、将例8-10中的TicketSeller类中出现的:
wait();
改写成:
thread.sleep(2000)
然后重新编译、运行例8-10,注意观察运行结果。
11、什么叫守护线程?
第8章作业题
1、上机调试例8-1,反复运行,观察每次运行的结果是否相同。
2、模仿例8-2,编写3个线程,分别在命令行窗口输出信息。
3、模仿例8-3,编写3个线程,使它们有更多的共享单元。
4、模仿例8-10,设计5个人排队买票,并规定买票规则和排队顺序。
第9章问答题及作业题
第9章问答题
1、如果准备读取一个文件的内容,应当使用FileInputStream流还是FileOutputStream流?
2、FileInputStream流的read()方法和FileReader()流的read()方法有何不同?
3、BufferedReader流能直接指向一个文件对象吗?
4、ByteArrayOutputStream流怎样获取缓冲区中的内容?
5、DataInputStream类和DataOutputStream类的主要用途是什么?
6、使用ObjecInputStream类和ObjectOutputStream类有哪些注意事项?