码迷,mamicode.com
首页 > 编程语言 > 详细

多线程

时间:2016-06-19 21:25:32      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

1   线程的实现

  实现Runnable接口相对于继承Thread类来说,有如下优势

  适合多个相同程序代码的线程区处理统一资源的情况

  可以避免由于Java单继承特性带来的局限

  增强了程序的健壮性,代码能够被多个线程共享,代码与数据是独立的

例如:卖5张票,继承Thread类的三个线程会各卖5张,其资源<5张票>并没有共享,实现Runnable接口的话,三个线程会一共卖5张票,实现资源共享

 

2  线程的状态

  任何线程一般具有5种状态

  创建:用构造方法新建一个线程之后,该线程就处于创建状态 如 Thread thread = new Thread()此时,已具有相应的内存空间和其他资源,但处于不可运行状态。

  终止:线程调用stop()会run()执行结束后。即处于死亡状态,线程结束。

  运行:当就绪状态的线程被调用并获得处理器资源时,该线程就进入了运行状态,此时会自动调用run(),run()定义了该线程的操作和功能

  阻塞:一个运行状态的线程在某些特殊情况如被挂起,或需要执行耗时的输入/输出操作时,将让出CPU并暂时终止自己的执行,进入阻塞状态,阻塞时,线程不能进入队列,只有当阻塞原因消除,线程转入就绪状态排队

  就绪:调用start()启动线程即处于就绪状态,该线程进入线程队列排队,等待CPU服务,已具备运行条件

 

3  线程的强制运行

  使用join(),让一个线程强制运行,其他线程无法运行,必须等待此线程结束之后才能继续进行

 

4  同步和死锁:过多的同步会造成死锁 

5  

 

  

多线程

标签:

原文地址:http://www.cnblogs.com/blog4matto/p/5598788.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!