java线程学习
线程的状态表示线程正在进行的活动以及在此时间段内所能完成的任务.线程有创建,可运行,运行中,阻塞,死亡五中状态.一个具有生命的线程,总是处于这五种状态之一:
1.创建状态
使用new运算符创建一个线程后,该线程仅仅是一个空对象,系统没有分配资源,称该线程处于创建状态(new thread)
2.可运行状态
使用start()方法启动一个线程后,系统为该线程分配了除CPU外的所需资源,使该线程处于可运行状态(Runnable)
3.运行中状态
Java运行系统通过调度选中一个Runnable的线程,使其占有CPU并转为运行中状态(Running).此时,系统真正执行线程的run()方法.
4.阻塞状态
一个正在运行的线程因某种原因不能继续运行时,进入阻塞状态(Blocked)
5.死亡状态
线程结束后是死亡状态(Dead)
同一时刻如果有多个线程处于可运行状态,则他们需要排队等待CPU资源.此时每个线程自动获得一个线程的优先级(priority),优先级的高低反映线程的重要或紧急程度.可运行状态的线程按优先级排队,线程调度依据优先级基础上的"先到先服务"原则.
线程调度管理器负责线程排队和CPU在线程间的分配,并由线程调度算法进行调度.当线程调度管理器选种某个线程时,该线程获得CPU资源而进入运行状态.
线程调度是先占式调度,即如果在当前线程执行过程中一个更高优先级的线程进入可运行状态,则这个线程立即被调度执行.先占式调度分为:独占式和分时方式.
独占方式下,当前执行线程将一直执行下去,直 到执行完毕或由于某种原因主动放弃CPU,或CPU被一个更高优先级的线程抢占
分时方式下,当前运行线程获得一个时间片,时间到时,即使没有执行完也要让出CPU,进入可运行状态,等待下一个时间片的调度.系统选中其他可运行状态的线程执行
//继承Thread
public class MyThread_1 extends Thread
{
public void run()
{
//some code
}
}
//实现Runnable接口
public class MyThread_2 implements Runnable
{
public void run()
{
//some code
}
}
- JAVA学习心得--线程
- Java 学习笔记 (5) - 线程 Thread
- Java多线程编程--(10)学习Java5.0 并发编程包--线程工具类
- Java线程学习和总结
- Java多线程学习:线程的生命周期
- Java基础第十一天学习日记_线程、同步、死锁
- java线程学习1——线程基本概念和操作
- JAVA学习笔记之四线程层次结构
- java学习之进程和线程
- 《Java Concurrency in Practice》 学习笔记--第二章:线程安全
- java基础学习5--线程
- Java线程学习之一---售票
- java学习-3-线程
- java线程学习3——线程的停止
- java线程学习
- java 线程学习(一)
- 今天学习了JAVA程序、线程、进程的区别
- 关于java 线程学习
- Java线程学习之线程简介
- java多线程学习1-继承Thread类和实现Runnable接口来创建线程