多线程相关基础知识
2014-03-19 09:42
218 查看
进程:一般来说启动了一个应用程序就会启动一个进程,当然有时候也会启动多个进程。比如说启动了QQ的时候除了启动QQ.exe,还会启动一个QQProtect.exe和TXPlatform.exe进程。每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。进程是内存资源分配的基本单位。
线程:线程是进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存空间。线程是CPU分配的基本单位。
线程在它的生命周期中会处于各种不同的状态:新建、就绪、运行、阻塞、死亡。
1. 新建(New)
用new语句创建的线程对象处于新建状态,此时它和其他java对象一样,仅被分配了内存。仅仅作为一个对象实例存在。
2.就绪(Ready)
当一个线程对象创建后,其他线程调用它的start()方法,该线程就进入就绪状态。处于这个状态的线程位于Java虚拟机的可运行池中,等待cpu的使用权。
3. 运行状态(Running)
处于这个状态的线程占用CPU,执行程序代码。在并发运行环境中,如果计算机只有一个CPU,那么任何时刻只会有一个线程处于这个状态。
只有处于就绪状态的线程才有机会转到运行状态。
4. 阻塞状态(Blocked)
阻塞状态是指线程因为某些原因放弃CPU,暂时停止运行。当线程处于阻塞状态时,直到线程重新进入就绪状态,它才会有机会获得运行状态。
5 .死亡状态(Dead)
当线程执行完run()方法中的代码,或者遇到了未捕获的异常,就会退出run()方法,此时就进入死亡状态,该线程结束生命周期。
线程:线程是进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存空间。线程是CPU分配的基本单位。
线程在它的生命周期中会处于各种不同的状态:新建、就绪、运行、阻塞、死亡。
1. 新建(New)
用new语句创建的线程对象处于新建状态,此时它和其他java对象一样,仅被分配了内存。仅仅作为一个对象实例存在。
2.就绪(Ready)
当一个线程对象创建后,其他线程调用它的start()方法,该线程就进入就绪状态。处于这个状态的线程位于Java虚拟机的可运行池中,等待cpu的使用权。
3. 运行状态(Running)
处于这个状态的线程占用CPU,执行程序代码。在并发运行环境中,如果计算机只有一个CPU,那么任何时刻只会有一个线程处于这个状态。
只有处于就绪状态的线程才有机会转到运行状态。
4. 阻塞状态(Blocked)
阻塞状态是指线程因为某些原因放弃CPU,暂时停止运行。当线程处于阻塞状态时,直到线程重新进入就绪状态,它才会有机会获得运行状态。
5 .死亡状态(Dead)
当线程执行完run()方法中的代码,或者遇到了未捕获的异常,就会退出run()方法,此时就进入死亡状态,该线程结束生命周期。
相关文章推荐
- OC相关基础知识2
- 硬件相关基础知识2(NOR Flash和NAND Flash的区别)
- HTML入门基础教程相关知识
- 类相关基础知识
- JSP基础知识(Servlet相关接口)
- 与网络相关的基础知识
- com组件相关基础知识
- java-基础--多线程理论知识
- 【Android Fragment相关】Fragment基础知识总结
- linux系统编程之基础必备(三):文件描述符file descriptor与inode的相关知识
- 加解密相关基础知识
- 多线程基础知识总结(二)
- Java 基础知识---多线程
- C++中的基础相关知识之static
- JAVA相关基础知识总结(连载)
- 关于pyhton多线程的相关知识集合
- 工作流引擎Activiti学习第四天(五)--- 基础知识学习之流程定义相关
- JAVA相关基础知识总结(连载)-17
- Java基础知识强化之网络编程笔记05:UDP之多线程实现聊天室案例
- Java 多线程相关知识 《java core 1》读书笔记