标签:
一 线程的实现:
多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。
MyThread th = new MyThread();//实例化线程对象,既是一条线程
Thread thread1 = new Thread(th);//对线程实现多态
1.一条线程因为有对象(方法体)的存在才有意义,所以在创建一条线程时,里面放的对象必须是线程对象才行,其它对象创建不了线程
二 线程的状态:
生:新实例化一条线程对象,线程对象已经创建,还没有在其上调用start()方法。
可运行:线程被启动,当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线 程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。
运行中:线程在运行中,线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态。这也是线程进入运行状态的唯一一种方式。
等待:线程等待,阻塞,睡眠,锁,这是线程有资格运行时它所处的状态。实际上这个三状态组合为一种,其共同点是:线程仍旧是活的,但是当前没有条件 运行。换句话说,它是可运行的,但是如果某件事件出现,他可能返回到可运行状态。
死:线程对象方法执行完,当线程的run()方法完成时就认为它死去。这个线程对象也许是活的,但是,它已经不是一个单独执行的线程。线程一旦死亡,就 不能复生。如果在一个死去的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常。
三 线程使用:
同步:
锁:
标签:
原文地址:http://www.cnblogs.com/jianyi12/p/5579585.html