进程与线程———我的第一篇博客
- 没有进程就没有线程,就像没有操作系统就没有进程一样。尽管线程不是进程,但在许多方面,它非常类似进程,线程是运行在进程中的小程序
- 程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载,执行至执行完毕的一个过程,这个过程也是进程本身从产生,发展,至消亡的过程。现在的操作系统可以管理一个计算机系统中的多个进程,即可以让计算机系统中的多个进程轮流使用CPU资源
- 线程的行为很像进程,线程是比进程更小的执行单位,一个进程在执行过程中可以产生多个线程,形成多条执行线索。线程可以共享进程中的某些内存单元,并利用这些内存单元进行数据交换实时通信与必要的操作,但与进程不同的是,线程的中断和恢复可以更加节省系统的开销。具有多个线程的进程能更好的表达和解决现实世界中的具体问题,多进程是计算机应用开发和程序设计的一项重要的实用技术
- 每个Java应用程序都有一个默认的主线程,Java应用程序总是从主类的main方法开始执行。当JVM开始加载代码,发现main方法之后,就会启动一个线程,这个线程被称作主线程,该线程负责执行main方法。在main方法的执行中再创建的线程,就被称为程序中的其它线程。如果main方法中没有创建其它的线程,那么当main方法执行完最后一个语句,即当main方法返回时,JVM就会结束Java应用程序。如果main方法又创建了其它线程,那么JVM就要在主线程和其它线程之间轮流切换,保证每个线程都有机会使用 CPU资源,main方法即使执行完最后的语句(主线程结束)JVM也不会结束JAVA应用程序,JVM要一直等到Java用应程序中的所有线程都结束之后,才结束Java 应用程序
github
参考文献
Java程序设计精编教程