DAY17Java语言入门基础教学 多线程

2019-08-19  本文已影响0人  辞cccc

多线程

线程与进程

  1. 进程 正在运行的一个程序
    系统会为这个进程分配独立的内存资源
  2. 线程 具体执行任务的最小单位

NEW 新建 线程刚被创建好
RUNNABLE 就绪状态 只要抢到时间片就可以运行这个线程
BLOCKED 阻塞状态 sleep wait
WAITING 等待 wait
TIMED_WAITING
TERMINATED

多线程

为什么需要创建一个子线程?

如果在主线程中存在比较耗时的操作, 这些操作会阻塞主线程, 后面的任务必须等这些任务执行完毕之后才执行, 用户体验差, 为了不阻塞主线程, 需要将耗时的任务放在子线程中执行

如何创建一个子线程?

  1. 协议类继承于 Thread 实现run方法
lass Ticker extends Thread{
    private int i;

    @Override
    public void run() {
        for(i=1;i<=100;i++) {
            //返回当前线程的名字
            System.out.println(getName()+":"+i);
        }
    }

    public static void main(String[] args){
        //main方法里面执行的代码 是在主线程里面执行的
        //(geiName)     主线程的名称是main
        String name =  Thread.currentThread().getName();
        System.out.println(name);

        //创建Thread的对象
        Ticker tt1 = new Ticker();

        //设置线程的名称
        tt1.setName("子线程1");

        //开启任务
        tt1.start();
    }
}
  1. 实现Runnable接口 实现run方法
  1. 通过 Callable 和 Future 创建线程

三种方法对比

  1. 采用实现 Runnable、Callable 接口的方式创建多线程时,线程类只是实现了 Runnable 接口或 Callable 接口,还可以继承其他类。
  2. 使用继承 Thread 类的方式创建多线程时,编写简单,如果需要访问当前线程,则无需使用 Thread.currentThread() 方法,直接使用 this 即可获得当前线程。

体会

上一篇 下一篇

猜你喜欢

热点阅读