实现多线程的两个方法:继承Thread类,实现Runable接口
为什么提供了这两种实现方式呢?因为继承只能单继承,假设你的一个类已经继承了一个类了,但是要使用多线程,就没办法再继承Thread类了,所以这时候就可以通过实现runable接口来实现
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
接下来就写一个多线程的小例子
多线程使用情景设定:我要实现一个功能,就是读取多个文件的内容,并且把文件的内容合并起来,读取文件这个操作,如果数据量大,用单线程,读取完一个文件,再去读取另外一个文件,这样效率低,很慢。那么我对合并的内容无顺序等要求的话,就可以考虑使用多线程读取文件
1.单线程java源码,和效果
package com.pactera.dao;
import java.util.ArrayList;
import java.util.List;
/**
* 多线程小测试
* @author wb-huaernan
*
*/
public class ThreadTest {
public static void main(String[] args) throws InterruptedException {
//初始化文件,我即将要读取的多个文件
List<String> fileList = new ArrayList<String>();
fileList.add("1月份账务");
fileList.add("2月份账务");
fileList.add("3月份账务");
//定义开始时间和结束时间,查看单线程和多线程的耗时
long startTime = System.currentTimeMillis();
//mergeContent为合并的内容
StringBuffer mergeContent = new StringBuffer();
//传统的单线程读取文件的方法
for (int i = 0; i < fileList.size(); i++) {
System.out.println("假设程序正在读取文件:"+fileList.get(i));
//假设每