`
xiebh
  • 浏览: 603390 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

JAVA 线程编程 ----线程介绍

阅读更多
概述

浏览网页时,当你等待加载图片时可以阅读和滚动网页中的文本,这种方式不好吗?在字处理软件中,当你打开另一个需要编辑的文档时,可以让一个文档在后台打印又如何呢?也许你已经享受了在回复一封email同时又能下载带有大文件附件的好处。通过允许一个多线程程序在同一时间做多个任务就可以使得这些方便的功能成为可能。这本书可以帮助你学习这些必须的技巧并把此有用的功能与你的JAVA程序相结合。


什么是线程(What Is a Thread)


当现代操作系统想开始运行一个程序,它首先创建一个进程(Process)。进程是一个当前正在执行的程序。每个进程至少有一个正在运行的线程(Thread)。有时,线程也被认为是轻量级进程(lightweight process)。一个线程是程序的一个代码执行路径(a path of code execution),每个线程有属于自己的局部变量,程序计数器(指向正在执行的指令)和生命周期。许多现代操作系统允许在一个处理器中同时运行多个线程。当操作系统启动了JVM(Java虚拟机)之后,就创建了一个新进程。在此进程中可创建许多线程。

通常,JAVA代码的执行从main()方法开始,然后沿着程序的路径进行处理直到main()方法中的所有语句完成。这就是一个单线程(single thread)的例子。这个“main”线程由JVM来创建,然后该线程开始执行main()方法,执行main()中所有语句,最后当main()完成后,该线程就会死掉(die)。

JVM中第二个总在运行的线程是:垃圾回收线程(garbage collection thread)。该线程清除掉所有遗弃的对象并回收它们的内存。所以,即使一个把“hello world”输出到System.out的简单JAVA程序也正运行在多线程的环境中。其中包括两个线程,一个是主线程(main Thread),另一个为垃圾回收线程。

当一个JAVA程序包含了图形用户界面(GUI)时,JVM会自动启动多个线程。其中一个线程负责把GUI事件传递给程序中相应的方法,另外线程负责画GUI窗口。

例如,一个基于GUI程序的主线程负责完成一个复杂、长时间的计算。当该计算正在进行时,用户点击了“停止计算”按钮,此时GUI事件线程就会调用为此按钮写的事件处理代码来终止计算线程。试想,如果只有一个线程,二者(计算和终止计算)不可能同时进行,中断计算将是困难的。




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics