继承Thread类
程序 进程 线程
一个进程process可以有多个线程thread,如视频中同时听声音、看图像、看弹幕等
- 
程序是一个静态概念 
- 
进程是动态概念 
- 
一个进程可以包含多个线程,至少一个线程 
- 
线程是cpu调度和执行的单位 
线程创建方式
- 
继承Thread类----Thread class 
- 
实现Runnable接口 
- 
实现Callable接口 
法一:
线程启动用start()进入可执行状态,然后执行的时候调用run()方法
package test1;
public class TestThread extends Thread{
    @Override
    //run方法线程体
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println("run线程学习"+i);
        }
    }
    //主线程 main线程
    public static void main(String[] args) {
        //创建一个线程对象
        TestThread testThread=new TestThread();
        //调用start()方法
        testThread.start();
        for (int i = 0; i < 10; i++) {
            System.out.println("main线程学习"+i);
        }
    }
}
输出:
每次执行结果不一样,逻辑上“同时”进行(谁先抢到cpu谁先执行)
线程开启不一定立即执行,由cpu调度执行

例子:
- 首先网上下载一个common-io的jar包【commons-io包是针对开发io流功能的工具类库】

- 新建一个名为lib的包

- 解压后将commons-io-2.10.0.jar复制到lib文件夹里

- 右键add as library

package test1;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.net.URL;
//实现多线程下载图片
public class TestThread2 extends Thread{
    private String url;
    private String filename;
    public TestThread2(String url,String filename){
        this.url=url;
        this.filename=filename;
    }
    @Override
    public void run() {
        WebDownloader webDownloader=new WebDownloader();
        webDownloader.downloader(url,filename);
        System.out.println("图片下载结束名字为"+filename);
    }
    public static void main(String[] args) {
        TestThread2 t1=new TestThread2("http://www.whxzn.com/images/banner/shouhou.jpg","1.jpg");
        TestThread2 t2=new TestThread2("http://www.whxzn.com/images/faq/1.jpg","2.jpg");
        TestThread2 t3=new TestThread2("http://www.whxzn.com/images/faq/3.jpg","3.jpg");
       //"同时"执行
        t1.start();
        t2.start();
        t3.start();
    }
}
//下载器
class WebDownloader{
    //下载方法
    public void  downloader(String url,String filename){
        try {
            FileUtils.copyURLToFile(new URL(url),new File(filename));//网络图片路径,图片下载后的名字
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("io异常");
        }
    }
}
输出结果:


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号