java线程基础
2012-01-31 11:06
239 查看
1. Thread类 实现了Runnable接口的类。
在启动多线程的时候 先是通过Thread的构造方法Thread(Runnabletarget)构造出对象,然后在通过Thread中的start方法启动 多线程的。
2.线程的状态
new(新建)、runnable(可运行)、running(运行中)、waiting(等待)、timed_waiting(定时等待)、blocked(阻塞)、dead(死亡)
3.多线程状态之间的切换 .
3.1、当执行new Thread(Runnable r)后,新创建出来的线程处于new状态,这种线程不可能执行
3.2、当执行thread.start()后,线程处于runnable状态,这种情况下只要得到CPU,就可以开始执行了。runnable状态的线程, 会接受JVM的调度,进入running状态,但 是 具体何时会进入这个状态,是随机不可知的.
3.3、如果CPU调度给了别的线程,或者执行了Thread.yield()方法,则进入runnable状态,但是也有可能立刻又进入running状态
3.4、如果执行了Thread.sleep(long),或者thread.join(long),或者在锁对象上调用object.wait(long)方法,则会进入 timed_waiting状态
3.5、如果执行了thread.join(),或者在锁对象上调用了object.wait()方法,则会进入waiting状态
3.6、如果进入了同步方法或者同步代码块,没有获取锁对象的话,则会进入blocked状态
3.7、处于waiting状态中的线程,如果是因为thread.join()方法进入等待的话,在目标thread执行完毕之后,会回到runnable状态
3.8、如果是因为object.wait()方法进入等待的话,在锁对象执行object.notify()或者object.notifyAll()之后会回到runnable状态
3.9、处于timed_waiting状态中的线程,和waiting状态中的差不多,只不过是设定时间到了,就会回到runnable状态
3.10、处于blocked状态中的线程,只有获取了锁之后,才会脱离阻塞状态
3.11、当线程执行完毕,或者抛出了未捕获的异常之后,会进入dead状态,该线程结束
在启动多线程的时候 先是通过Thread的构造方法Thread(Runnabletarget)构造出对象,然后在通过Thread中的start方法启动 多线程的。
2.线程的状态
new(新建)、runnable(可运行)、running(运行中)、waiting(等待)、timed_waiting(定时等待)、blocked(阻塞)、dead(死亡)
3.多线程状态之间的切换 .
3.1、当执行new Thread(Runnable r)后,新创建出来的线程处于new状态,这种线程不可能执行
3.2、当执行thread.start()后,线程处于runnable状态,这种情况下只要得到CPU,就可以开始执行了。runnable状态的线程, 会接受JVM的调度,进入running状态,但 是 具体何时会进入这个状态,是随机不可知的.
3.3、如果CPU调度给了别的线程,或者执行了Thread.yield()方法,则进入runnable状态,但是也有可能立刻又进入running状态
3.4、如果执行了Thread.sleep(long),或者thread.join(long),或者在锁对象上调用object.wait(long)方法,则会进入 timed_waiting状态
3.5、如果执行了thread.join(),或者在锁对象上调用了object.wait()方法,则会进入waiting状态
3.6、如果进入了同步方法或者同步代码块,没有获取锁对象的话,则会进入blocked状态
3.7、处于waiting状态中的线程,如果是因为thread.join()方法进入等待的话,在目标thread执行完毕之后,会回到runnable状态
3.8、如果是因为object.wait()方法进入等待的话,在锁对象执行object.notify()或者object.notifyAll()之后会回到runnable状态
3.9、处于timed_waiting状态中的线程,和waiting状态中的差不多,只不过是设定时间到了,就会回到runnable状态
3.10、处于blocked状态中的线程,只有获取了锁之后,才会脱离阻塞状态
3.11、当线程执行完毕,或者抛出了未捕获的异常之后,会进入dead状态,该线程结束
相关文章推荐
- java基础学习总结——线程(二)
- Java多线程基础:进程和线程之由来
- 黑马程序员 ___java基础10 线程2
- Java并发总结(一):线程基础
- Java多线程编程总结笔记——一多线程基础知识
- Java多线程编程基础之线程对象
- Java高并发程序-Chapter2 Java并行程序基础 (第八讲)线程组 、守护线程、线程优先级
- java线程基础知识
- Java中Thread线程基础
- java线程基础知识
- Java笔记 - 线程基础知识
- java基础之本地线程
- Java基础复习:线程通信—生产者消费者改进
- java基础之 线程
- Java基础的IO和线程知识
- 【Java基础】线程笔记——创建线程的3种方式
- Java多线程系列--“基础篇”06之 线程让步
- 【Java基础】线程笔记——synchronized
- java线程基础
- java线程基础巩固---Daemon线程的创建以及使用场景分析