java多线程基础

Java多线程基础

@(博客文章)[java]java

1、基础内容

一、线程的基本概念

(1)一个线程是一个程序内部的顺序控制流。多线程

(2)线程和进程
–每一个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大。操作系统

–线程:轻量的进程,同一类线程共享代码和数据空间,每一个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。线程

–多进程:在操做系统中,能同时运行多个任务(程序)。对象

–多线程:在同一应用程序中,有多个顺序流同时执行。继承

二、JAVA线程基础

JAVA的线程是经过java.lang.Thread类来实现的。接口

VM启动时会有一个由main()方法所定义的线程。进程

能够经过建立Thread的实例来建立新的线程。博客

每一个线程都是经过某个特定Thread对象所对应的方法run()来完成其操做的,方法run()称为线程体。table

经过调用Thread类的start()方法来启动一个线程。

三、建立新线程的2种方法

(1)继承Thread类

(2)实现Runnable接口

建议使用第二种方式,即实现Runnable接口。

2、线程状态及其变迁

一、Java线程的六种状态

状态名称 说明
NEW 初始状态,线程被构建,但尚未调用start()方法。
RUNNABLE 运行状态,Java线程将操做系统中的就绪和运行两种状态统一称为RANNABLE
BLOCK 阻塞状态,表示线程阻塞于锁
WAITING 等待状态,表示当前线程须要等待其它线程作出一些待定动做(通知或中断)
TIME_WAITING 超时等待状态,相似于WAITING,但能够在指定时间后自行返回
TERMINATED 终止状态,表示当前线程已经执行完毕

二、线程状态的变迁

image

相关文章
相关标签/搜索