------------恢复内容开始------------java
java 多线程 快速入门api
1. 进程和线程多线程
什么是进程?spa
进程是正在运行的程序它是线程的集合操作系统
进程中必定有一个主线程线程
一个操做系统能够有多个线程3d
什么是线程?
对象
线程就是独立的运行一条执行路径
blog
一个独立的执行单元 , 一个执行流程继承
为何要使用多线程?
多线程提升程序效率 , 使用多线程 , 每一个线程互补影响
2.建立线程的方式有哪些
1.使用继承 Thread类方式
以下示例
结果
1.继承 Thread 类
class CreateThread_1 extends Thread { /*......*/}
2.重写方法 run()
public void run() {/*......*/}
3.建立对象
CreateThread_1 t1 = new CreateThread_1 ()
4.启动线程
ti.start()
注意 : 若是 是直接 调用 run() 方法的话 它仍是 单线程 会 按顺序向下执行
直接调用 run() 方法 的话 也就是一个普通方法
结果会是
2.使用实现 Runnable 接口
以下示例
结果
1.实现Runnable接口
class CreateThread_2 implements Runnable {/*.....*/}
2.实现 run() 方法
public void run() {/*.....*/}
2.启动线程
// 建立对象
CreateThread_2 t1 = new CreateThread_2();
Thread thread = new Thread(t1);
// 调用 start() 方法 启动线程
thread.start();
注意 : Runnable 接口 没有 start()方法
因此咱们要用到 Thread 类 的 start() 方法
3.Callable 内部匿名建立
以下示例
匿名 Thread 类
示例 2
结果
匿名内部 建立多线程 比 Thread 类 和 Runnable 接口 更 灵活
多线程经常使用 api 方法
start() 启动线程
getId() 获取当前线程 id 编号 从0 开始
getName() 获取当前线程名称
例如:
sleep(1000) 休眠 1 秒
stop() 中止线程
currentThread() 获取当前线程对象
(Thread.currentThread().getId() 获取当前线程 id)
Thread(String name)分配一个新的 Thread 对象 而且定义名称
例如
多线程有几种状态
1.新建
new Thread();
2.准备
调用 start () 方法时 不会立刻执行
3.运行
Cpu 开始执行 run 时
4.休眠
调用sleep()方法
或者 wait()方法
5.中止(死亡)
Run 方发执行完毕或者调用 stop()方法
流程图
join ()方法
做用 : 先让别的线程先执行 ( 在当前线程 , 当前线程 让出 )
示例: 让子线程先执行
结果
总结 :
进程是正在运行的程序,它是线程的集合
线程就是在独立运行一条执行路径
多线程 就是为了提升程序的效率
进程是线程集合
线程是进程一条执行路径
Thread 类建立线程
Runnable 接口建立线程
匿名内部建立线程
多线程的经常使用api方法
多线程的运行状态
------------恢复内容结束------------
java 多线程 快速入门
1. 进程和线程
什么是进程?
进程是正在运行的程序它是线程的集合
进程中必定有一个主线程
一个操做系统能够有多个线程
什么是线程?
线程就是独立的运行一条执行路径
一个独立的执行单元 , 一个执行流程
为何要使用多线程?
多线程提升程序效率 , 使用多线程 , 每一个线程互补影响
2.建立线程的方式有哪些
1.使用继承 Thread类方式
以下示例
结果
1.继承 Thread 类
class CreateThread_1 extends Thread { /*......*/}
2.重写方法 run()
public void run() {/*......*/}
3.建立对象
CreateThread_1 t1 = new CreateThread_1 ()
4.启动线程
ti.start()
注意 : 若是 是直接 调用 run() 方法的话 它仍是 单线程 会 按顺序向下执行
直接调用 run() 方法 的话 也就是一个普通方法
结果会是
2.使用实现 Runnable 接口
以下示例
结果
1.实现Runnable接口
class CreateThread_2 implements Runnable {/*.....*/}
2.实现 run() 方法
public void run() {/*.....*/}
2.启动线程
// 建立对象
CreateThread_2 t1 = new CreateThread_2();
Thread thread = new Thread(t1);
// 调用 start() 方法 启动线程
thread.start();
注意 : Runnable 接口 没有 start()方法
因此咱们要用到 Thread 类 的 start() 方法
3.Callable 内部匿名建立
以下示例
匿名 Thread 类
示例 2
结果
匿名内部 建立多线程 比 Thread 类 和 Runnable 接口 更 灵活
多线程经常使用 api 方法
start() 启动线程
getId() 获取当前线程 id 编号 从0 开始
getName() 获取当前线程名称
例如:
sleep(1000) 休眠 1 秒
stop() 中止线程
currentThread() 获取当前线程对象
(Thread.currentThread().getId() 获取当前线程 id)
Thread(String name)分配一个新的 Thread 对象 而且定义名称
例如
多线程有几种状态
1.新建
new Thread();
2.准备
调用 start () 方法时 不会立刻执行
3.运行
Cpu 开始执行 run 时
4.休眠
调用sleep()方法
或者 wait()方法
5.中止(死亡)
Run 方发执行完毕或者调用 stop()方法
流程图
join ()方法
做用 : 先让别的线程先执行 ( 在当前线程 , 当前线程 让出 )
示例: 让子线程先执行
结果
总结 :
进程是正在运行的程序,它是线程的集合
线程就是在独立运行一条执行路径
多线程 就是为了提升程序的效率
进程是线程集合
线程是进程一条执行路径
Thread 类建立线程
Runnable 接口建立线程
匿名内部建立线程
多线程的经常使用api方法
多线程的运行状态