多线程

一、线程和进程


进程:处于运行过程中的程序,系统进行资源分配和调度的一个独立单位。多个进程可以在单个处理器上并发执行,多个进程之间不会互相影响

           (并发:同一时刻只能有一条指令执行,多个进程指令被快速轮换执行,宏观具有多个进程同时执行的效果)

线程:轻量级进程,在程序中是独立的、并发的执行流。可以拥有自己的堆栈、程序计数器、局部变量,不拥有资源,与其他共享资源。

           抢占式执行

           一个线程可以创建和撤销另一个线程


一个进程可以拥有多个线程,但是一个线程只能有一个父进程


二、线程创建和启动


1.继承Thread类创建线程类

1)定义Thread类的子类,实现run方法

2)创建子类对象

3)运行子类对象的start方法



2.实现Runnable接口创建线程类

1)定义Runnable接口实现类的实现类,重写run方法

2)创建Runnable实现类的实例,以此作为Thread的target来创建Thread对象




二、线程生命周期


1)New

   创建线程,JVM为其分配内存,初始化其成员变量

2)Runnable

   start方法后,JVM为其创建方法调用栈和程序计数器

3)Running

   Runnable状态获得了CPU,开始执行run方法的执行体,一个CPU只能运行一个线程

4)Blocked

   调用sleep方法

   调用了一个阻塞式IO方法

   试图获得同步监视器

   等待某个notify

   调用suspend方法挂起

5)Dead

   run执行完毕

   抛出一个未捕获的Exception或Error

   stop方法调用

   




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值