读书人

线程小结(2)

发布时间: 2013-01-28 11:49:56 作者: rapoo

线程总结(2)
一.回顾以前学过的有关线程的基本概念:
1.什么是线程?
  线程是计算机中程序中独立运行的单位,每个java程序程序被启动时,java虚拟机都会创建一个主线程即(main函数)来使程序运行、即我们经常用到的main()函数,不管是在java还是c语言中都可以被理解成是一个线程。
  
  2.线程和进程的区别?
  进程:通俗来讲可以和一个程序的概念画上等号,一个程序就是一个进程。
  线程:如上面所说是程序中一个独立运行的单位,也便是进程中的一部分,一个进程可以包含很多个线程。
  多个进程的内部数据和状态是完全独立的,而一个进程中的多个线程是共享一块内存空间和一组系统资源的,在程序内部可以互相调用,而进程间的通信大多都要通过网络实现。
  
3.线程的创建
  1.写一个java主函数(我觉得这个也是线程创建的一种方式
  2.继承java.lang.Thread类
  3.实现 java.lang.Runnable接口
  4.匿名内部类的形式创建
  以上几种方法这边就不在细说,详细请见博客中的线程总结(1)。
  
  
  4.线程的状态
  这个很多资料上都说法不一,有的说三种、有的说四种、也有五种的,要比较完整的话我觉得是五种。
  1.创建状态:在创建了线程对象,但没有调用start()方法。
  2.就绪状态:调用了start()方法后,就进入了就绪状态,但此时线程调度程序并没有把线程设定为当前线程,即run()方法还没开始运行。或者在线程从等待或者休眠中醒来,此刻线程也处于是就绪状态。
  3.运行状态:线程调度程序将线程设定为当前线程,线程开始运行,即run()方法开始运行。
  4.等待(阻塞)状态:当线程运行的时候被暂停。如sleep()等方法的调用是运行出现了阻塞的情况。
  5.死亡状态:线程run()方法运行结束,该线程就进入死亡状态了。

  以上是对线程一些基本知识点的回顾,下面讲的才是此篇博客的重点。



二。线程同步问题的产生、

  1.为什么会产生线程同步的问题?

  记得我第一次接触到线程同步问题是在听设计模式中的单例模式中碰到的。这里简单说一下单例模式:顾名思义,就是只能有一个例子,即某个类对象中只能产生一个对象。这样的类要怎么去编写?
  当时用的是一种叫做懒汉式的方法,代码如下:
  
  

     2 楼    120970289    2013-01-18              总之,一句话,干!
代码猿不好干啊!

读书人网 >其他相关

热点推荐