[Java笔记] Java多线程与IO系统 01
基本问题
下面哪些方法是java.lang.Thread类中的方法?哪些方法是能抛出异常InterruptedException的?哪些方法在Java中是禁用的?
run(), start(), stop(), suspend(), resume(), sleep(), interrupt(), yield(), join()
查阅jdk手册知:run(), start(), stop() 已弃用, suspend() 已弃用, resume() 已弃用, sleep(), interrupt(), yield(), join()均为java.lang.Thread中的方法。
各方法对应抛出的异常类型有:
方法 | 异常类型 |
---|---|
run() | 不抛出异常 |
start() | IllegalThreadStateException |
stop() | SecurityException |
suspend() | SecurityException |
resume() | SecurityException |
sleep() | IllegalArgumentException、InterruptedException |
interrupt() | SecurityException |
yield() | 不抛出异常 |
join() | InterruptedException |
因此可以抛出InterruptedException的方法有:sleep(), yield()。
其中在java中已弃用的方法有:stop(), suspend(), resume()。
编写一个测试程序,用多线程计算1万以内素数之和与完全数之和的乘积。
何为流?根据流的方向,流可分为哪两种?
“流”是对输入输出设备的一种抽象,是一组有序的数据序列,就像一个水流管道,能将数据从从一个地方(源)带到另一个地方(目的地)。流的创建可以更加方便地处理数据的输入和输出。
根据流的方向,流可以分为输入流和输出流。
- 输入流的指向称为它的源,输入流从源(文件、各种输入设备等)中将数据读取到进程(内存)中。
- 输出流的指向称为它的目的地,输出流从进程中读取数据,并将数据写入到目的地(永久储存的媒介中或者传送给其他的应用程序)中。
InputStream,OutputStream,Reader和Writer类的功能有何异同?
InputStream, OutputStream, Reader和Writer类都能够创建流。
InputStream和Reader都是是输入流,用于读取信息。但是InputStream是字节输入流,以字节为单位读取文件,而Reader是字符输入流,以字符为单位读取文件。
OutputStream和Writer都是输出流,用于写入信息。但是OutputStream是字节输出流,以字节为单位向文件写入内容,而Reader是字符输出流,以字符为单位向文件写入内容。