0009 Java 线程的生命周期【基础】
来源:互联网 发布:淘宝客服中心组织架构 编辑:程序博客网 时间:2024/05/21 19:27
前言:
在java中每new一个线程,jvm都是向操作系统请求new一个本地线程,此时操作系统会使用剩余的内存空间来为线程分配内存,而不是使用jvm的内存。这样,当操作系统的可用内存越少,则jvm可用创建的新线程也就越少。
生命周期:
新建-就绪-(阻塞)-运行--死亡 1)其中当用new 创建完一个线程对象后,该线程处于新建状态。 2)当线程对象调用了start()后,该线程处于就绪状态。 3)如果处于就绪状态的线程获得CPU时间片,开始执行run方法的线程执行体,该线程处于运行状态。 4)如果线程调用了sleep()或者调用了一个阻塞式IO方法等,该线程处于阻塞状态。 5)如果线程的run()执行完成或者抛出一个未捕获的异常等原因,该线程处于死亡状态。
注意:
1、线程只有通过new Thread来创建,此时才会开辟线程所需要的堆空间。这个时候线程处于新建状态。新建状态指的是有一个Thread对象,但是并不是一个真正的线程。
2、实现Runnable的类必须通过new Thread(runnable)来创建一个线程。
3、当调用了线程的start()方法时才会为线程准备线程所需要的栈空间,此时线程从新建状态变成可运行状态(就绪状态)。调用start()方法之后如果该线程获得了执行的机会,其状态变成运行状态,其run()方法将被调用。
2、对Java的Thread或者Runnable来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称(和签名)。因此,在Runnable上或者Thread上调用run方法是合法的。但并不启动新的线程。
0 0
- 0009 Java 线程的生命周期【基础】
- 【Java基础】:线程的生命周期
- Java基础----线程生命周期
- 【java基础之多线程】多线程的生命周期
- 线程的生命周期--Java基础069
- JAVA线程的生命周期
- Java线程的生命周期
- JAVA线程的生命周期
- java 线程的生命周期
- java线程的生命周期
- Java线程的生命周期
- Java线程的生命周期
- Java线程的生命周期
- Java线程的生命周期
- java--线程的生命周期
- java线程的生命周期
- JAVA:线程的生命周期
- Java线程的生命周期
- 远程通信框架-Hessian
- CentOS 6.4安装Fcitx4.0
- 每日英语
- Hibernate Annotation @mappedBy含义在使用onetoone 时候【外键双向关联】(十三)
- Mysql异常:MySQLNonTransientConnectionException: No operations allowed after statement closed
- 0009 Java 线程的生命周期【基础】
- 图的广度优先搜索
- codec-wm8960
- 64位操作系统asp连接数据库
- Git push/pull/cherry-pick/merge/rebase
- 学习笔记4
- P2P 之 UDP穿透NAT的原理与实现
- 历届博客之星获奖博客分享
- java IO总结