多线程

来源:互联网 发布:大漠驼铃 php 编辑:程序博客网 时间:2024/05/17 05:04

9.多线程

并发 并行
1. 并行:不同的cpu在同一时间对不同的代码进行运行。
2. 并发:同一个cpu在同一时间模拟对不同的代码进行运行

进程,线程
1. 进程:指一个程序,在内存占有一块空间(资源),一个进程至少会包含一个线程(主线程main) 。
2. 线程:是进程的执行单位。多个线程共享进程资源,

Thread
1. 必须去继承Thread,并且重写他的run()方法,就是执行代码;
2. 创建线程的对象,并调用start方法来启动线程执行run中的代码
3 多条线程执行时,是没有办法判断的。

  1. 方法的调用并不是静态的,不要认为在线程类中写的方法就是子线程调用的方法。
  2. 主线程的入口是mian,在里面调用的所有方法,都是主线程的
    1. 子线程的入口是run,在run中调用的任何方法,都是子线程的
      常用方法
  3. currentThread()

Runnable
1. 1. 实现Runnable,重写run方法。
2. 创建Runnable的实例。
3. 使用Thread的构造方法创建对象,将Runnable放入Thread
4. 调用Thread的start来开启线程。

Callback
1. 1. 实现Callback接口,给个返回值类型的泛型。
2. 创建Callback实例,创建FutureTast的实例,将Callback传入构造方法。
3. 创建线程,将FutureTask的实例放入构造方法。
4. 开启线程,Thread.start方法启动
5. 如果需要获取结果,调用FutureTask实例的get方法来获取线程的返回(阻塞当前线程);