线程的学习-peak

基本概念

单线程

一个程序只有从头到尾的一条执行路径。

多线程

同一个进程同时存在几个执行体,按几条不同的执行路径同时工作。

程序

指含有指令和数据的文件。

进程

程序的执行过程。

线程

线程不能独立存在只能存在在进程中。
其实就是一个比进程小的执行单位。

调度

调度就是指在各个线程之间分配CPU资源。多个进程并发进行其实就是通过调度来进行的。线程调度有两种状态:分时模型和抢占模型。
分时模型和抢占模型请百度。
JAVA语言支持的就是抢占式调度模型。

线程的状态

新建状态

当一个Thread类或者其子类的对象被声明并创建,但还未被执行的这段时间里,处于一种新建状态。
此时,线程对象已经被分配了内存空间和其他资源,并已被初始化,但是该线程尚未被调度。此时的线程可以被调度,编成就绪状态。

就绪状态

当一个新建状态的线程被启动后,进入排队等待CPU资源,此时它具备了运行条件,也就处于就绪状态。

执行状态

当就绪状态被调度并获得CPU资源时,使进入执行状态。

阻塞状态

一个正在执行的线程如果在某些特定条件下,将让出CPU并暂时终止自己的执行,线程处于这种不可执行的状态被称为阻塞状态。

消亡状态

处于消亡状态的线程不具有继续执行的能力。

JAVA的Thread线程类与Runnable接口

1.利用Thread类的子类来创建线程

构造方法
public Thread() 创建一个线程对象,运用这个方法必须创建子类并覆盖子类方法run)
public Thread(String name) 创建一个线程对象,name指定对象名称
public Thread(Runnable target)创造一个线程对象,参数target的run()方法被调用

方法

public static Thread currentThread() 返回正在执行的线程对象
boolean isInterrupted() 判断是否处于中断状态
void sleep(long millis) 为当前执行的线程设置睡眠时间
void yield()暂停当前线程的执行

public void start() 使该进程处于就绪
void interrupt() 当处于就绪中断或执行状态时,给该线程设置中断标志。
void join() 暂停当前进程的执行,等待利用该方法的线程执行结束再继续执行本线程

用Runnable接口来创建线程

Thread接口只提供了一个抽象方法run()的声明,Thread类其实就是继承了Object类,实现了Runnable接口
注意:1,因为Runnable接口没有任何对进程的支持,所以还必须创建Thread类的实例
2. 线程的 数据共享用Runnable接口比较好。

线程的同步

JAVA语言使用synchronized来标识同步的资源,指定的该资源只有该线程把资源执行完后,其他线程才能调用该资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值