java 线程
来源:互联网 发布:containsall java 编辑:程序博客网 时间:2024/06/18 16:50
线程
线程启动
Thread thread = new Thread();thread.start();//启动
- new Tread()仅仅是在JVM中构建了线程对象
- start() 这个方法将调用本地方法(JNI)来实现一个真正意义上的线程,此时会在OS级别进行线程的真正创建
- run()方法定义了线程的逻辑
线程状态
- NEW :线程在没有进行start之前,本质上还不是一个线程,仅仅是JVM中外壳对象
- Runnable:线程发生start之后的状态,也可以理解为存活的正在尝试征用CPU的线程,从Java本身层面上讲,这个状态并不代表一定处于运行状态的线程
- BLOCKED:处于阻塞状态,或者线程已经被挂起
- WAITING:线程拥有对象锁之后进入到相应的代码区域后,调用相应的对象wait方法后产生的结果
- TIMED_WAITING:当调用Thread.sleep的方法时,相当于使用某个时间资源作为锁对象,进而达到等待的目的
- TERMINATED:线程刚刚运行完,即执行完用户逻辑
线程实现
- extend Thread
- implements Runnable
- implements Callable
实现特点
- 对于继承和实现的利弊:关注于java单继承体系问题
- Runnable 和Callable特点
- Runnable实现run(),Callable实现call()
- run中不可以抛出异常,在使用不当时,可能造成定时任务卡死(Timer实现的情况下);call方法可以抛出异常,并且具有返回值
- Callable和Runnable都可以应用于executors。而Thread类只支持Runnable
- Callable适用于异步的数据获取
线程终止
- stop :比较粗暴,无论线程执行到哪里,它将会立即停止掉线程。当线程处于RUNNABLE状态时,使用stop方法,Thread将会抛出java.lang.ThreadDeath 的ERROR
- interrupt :调用线程对象的interrupt方法并不一定就中断了正在运行的线程,它只是要求线程自己在合适的时机中断自己。
0 0
- Java线程:什么是线程
- Java线程:线程池
- java线程--线程退出
- JAVA-线程/线程锁
- Java线程:什么是线程
- Java线程:线程中断
- Java线程:线程状态
- Java线程: 线程调度
- Java线程:线程交互
- java--线程--线程池
- java 线程
- Java线程
- java线程
- java线程
- Java线程
- Java线程
- java线程
- JAVA 线程
- HDU 3388 与m,n 互质的第k个整数
- 杂记 《吐槽星人》
- 生还者+感染者+物品的轮廓颜色修改方法
- 人月神话阅读笔记(2)
- android环境下两种md5加密方式
- java 线程
- HTTP协议-HTTP特点、请求和响应
- 解决问题——VMware 虚拟机从hostonly模式切换到NAT模式连不上网
- 笔记:C++学习之旅---指针
- android 6.0 activitymanagerservice keyword
- List.Sort 排序
- 2016.08.24 之感
- NIO中的缓冲区
- 三元运算符