一.回顾以前学过的有关线程的基本概念:
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()方法运行结束,该线程就进入死亡状态了。
以上是对线程一些基本知识点的回顾,下面讲的才是此篇博客的重点。
转载于:https://blog.51cto.com/shuaigee/1133493