线程是java的一大特性,它可以是给定的指令序列.给定的方法中定义的变量或者一些共享数据(类一级的变量).在java中每个线程有自己的堆栈与程序计数器(pc),其中堆栈是用来跟踪线程的上下文(上下文是当线程执行到某处时,当前的局部变量的值),而程序计数器则用来跟踪当前线程正在执行的指令.
【程序编程相关:调查:71%宽带用户将网络视为获取新闻来】 【推荐阅读:电力电缆布线时热伸缩及其对策探讨】在通常情况下,一个线程不能访问另外一个线程的堆栈变量,而且这个线程必须处于如下状态之一: 【扩展信息:朗讯阿尔卡特将合并 分析师点评朗讯包袱多】 1.排队状态(ready),在用户创建了一个线程以后,这个线程不会立即运行.当线程中的方法start()被调用时,这个线程就会进行排队状态,等待调度程序将它转入运行状态(running).当一个进程被执行后它也可以进行排队状态.如果调度程序允许的话,通过调用方法yield()就可以将进程放入排队状态. 2.运行状态(running),当调度程序将cpu的运行时间分配给一个线程,这个线程就进入了运行状态开始运行. 3.等待状态(waiting),很多原因都可以导致线程处于等待状态,例如线程执行过程中被暂停,或者是等待i/o请求的完成而进入等待状态. 在java中不同的线程具有不同的优先级,高优先级的线程可以安排在低优先级线程之前完成.如果多个线程具有相同的优先级,java会在不同的线程之间切换运行.一个应用程序可以通过使用线程中的方法setpriority()来设置线程的优先级,使用方法getpriority()来获得一个线程的优先级. 线程的生命周期 一个线程的的生命周期可以分成两阶段:生存(alive)周期与死亡(dead)周期,其中生存周期又包括运行状态(running)与等待状态(waiting).当创建一个新线程后,这个线程就进入了排队状态(ready),当线程中的方法start()被调用时,线程就进入生存周期,这时它的方法isalive()始终返回真值,直至线程进入死亡状态. 线程的实现 有两种方法可以实现线程,一种是扩展java.lang.thread类,另一种是通过java.lang.runnable接口. thread类封装了线程的行为.要创建一个线程,必须创建一个从thread类扩展出的新类.由于在thread类中方法run()没有提供任何的操作,因此,在创建线程时用户必须覆盖方法run()来完成有用的工作.当线程中的方法start()被调用时,方法run()再被调用.下面的代码就是通过扩展thread类来实现线程: import java.awt.*; ... 下一页