1. 多线程的特点
一般程序中,只有一个主线程,自上而下顺序执行。
但是多线程程序中,多个线程的执行是并发的,程序员无法在设计时预测各个线程的执行结束时间。
看下面的线程类,用来读取文件大小,然后把结果放到线程局部变量中。
/**
* 读取文件大小
*/
public class ReadFileRunnable implements Runnable {
/**
* 文件名
*/
private String fileName;
public ReadFileRunnable(String fileName) {
this.fileName = fileName;
}
/**
* 文件大小,默认为-2
*/
private long length = -2;
public long getLength() {
return length;
}
@Override
public void run() {
File f = new File(fileName);
if (f.exists() && f.isFile()) {
this.length = f.length();
} else {
this.length = -1;// 文件不存在
}
}
}
如果按照一般的思维,我们先启动线程获取文件大小,然后输出文件大小。
public static void main(String[] args) {
// 启动线程
ReadFileRunnable writeFileRunnable = new ReadFileRunnable("D:\\temp\\1.txt");
Thread