黑马程序员_多线程的总结

来源:互联网 发布:战舰世界柯尼斯堡数据 编辑:程序博客网 时间:2024/05/17 03:24

---------------------- android培训java培训、期待与您交流! ----------------------

多线程:


 一:概述

  在一个进程中有多条执行路径.
  A:进程 正在执行的程序,它代表着应用程序的执行区域.
  B:线程 进程的执行路径.
   **如果一个进程中一个一个线程,那么该程序就是单线程程序.
   **如果一个进程中有多个线程,那么该程序就是多线程程序.
   
   举例:请人吃饭
        360管理界面中,杀毒,清理垃圾可以同时执行.
        迅雷下载


二:jvm的启动是多线程的还是单线程的.

  A:多线程的.
   **为什么
   **垃圾回收机制这个线程不可能是在程序执行完毕后才启动的,
     否则的话,我们的程序很容易出现内存溢出.

   **举例: 我爱吃西瓜


 三:创建线程的方式


  A:继承Thread类
   **步骤


   **线程的随机性
   **线程的生命周期

  B:实现Runnable接口
   **步骤 

  问题:考虑,为什么有了Thread类还需要Runnable接口.



 四:多线程的安全问题


  A:线程访问的延迟
  B:线程的随机性
 (6)同步解决线程安全问题
  A:同步代码块

   **同步的前提
    ***同步需要两个或两个以上的线程
    ***多个线程使用的是同一个锁
   **同步的好处 提高了安全性
     同步的弊端 效率较低

   安全性和效率是你们一直要考虑的问题,而且很多时候,他们是对立的关系.

  B:同步函数

   同步函数使用
  A:用synchronized关键字修饰方法即可.
  
  public synchronized void show()
  {
   //需要同步的代码块
  }
  同步函数使用的锁
  同步函数使用是this对象锁.

五:死锁


 (1)产生原因
  假如有A和B两个锁,在A锁中要使用B锁,在B锁中要是A锁,而他们都不想让,最终导致了死锁.
 (2)如果解决
  不同时在A锁中用B锁,B锁中用A锁.

 ---------------------- android培训java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima

 

原创粉丝点击