首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

线程的运作机理

2012-09-19 
线程的运行机理对象部有一个生命过程,例如对象的创生.调用对象的方法,清胜对象等.峨程也是一个对象,除了上

线程的运行机理
    对象部有一个生命过程,例如对象的创生.调用对象的方法,清胜对象等.峨程也是一个对象,除了上面对旅的?般活动外,作为线程.它能够实现特殊的功能,例如,用践程进行愉入拍出、用线程重新给制屏幕等功能.因此它有一个不同于一般对象的生奋活动过程:下面我们介绍线程的生奋过程.院先是找V的创建.砚们知道创建类的实例对象是皿过类的构造方法。创建线程与创建普通的类的对象的操作是一样的,通过线程类Thread成名其子类的构造方法创建线程一个线程被创建后帆实实在在的存在了。这时线程没有任何的动作。处于待命状态,要运行线程就m要撇活线程即启动线程.橄稀线程(肩动线程)的方祛是通过调用线程对象的st翻o方法.
线程创建后没有局动。是没有任何作用的,k动线程也就是启:rr线程的nm(,方法。启动线程的方法是通过调用线程的start(》方法,当调用线程的start()方法后,stag;)方法做一些启动线程的ruo(J方法的准备,然后返同到调用、lam的方块继续执行下面的语句,这时线程处于调度伏态一。ta以)方祛M动峨程的run(}方法与调用一般的方法不间,调月一般的方法时,必须尊到一般的方法执行完毕时才能够返回slutO方法,而启动线程的nin0力法时,start()方法告诉系统该线程准备就绪可以启动nmO方法后.就返回调用surt()方法的方法,执行谓用start()方法语句下面的语句,这时rna0方法可能仍然在运行,实kF.了线程的启动取线程的并行运行,可以进行多仃务操作‘
    线w.运行时的控制。城Vi启动后:处子运行状态。进行任务处理.我们也可以对运行的线w使用线程类供的方法对线捏进行控Me运行的线程之间的润信线常用的方法为nonfy0和     wait()方坛.前面我们已经介绍了.riry()和wail()方法的工作过程。同时,我t可以调用线程的susper哟方法使线程利处于休眠状态:魏们还可以调用线程的二,ume( l来恢复线程的运行状杏通常,我们有其它紧免的任务要处理时,可以月方法suspnral()方法暂停不重要的线样的in行,使它处十休眠状态当或急任务执行完毕后:我们可以调用线程的resume()方法来恢复线捏的亥牢几
    线V的终止.当一个线程执行完指定的任务而权有用途后.我们需要终.卜线程的运行,终止线程可以通过调用线程的stopO方祛.玛调用线程的"0方法后,钱程被标识为没有月途的对象。lava的垃圾回收线栓会回收被终止的线程所占的资源尸调用:t剑叫)方法会产生一个ThreadDeath的例外通常盘们不能够捕获该例外或者捕获后继续抽出.将这个例外交给线程组的u aughtExcepliuo(lliread  t, Throwahle  e)i1t行线和终止石的处理,以便桂线程真正处于death状态而清除线w所占的资源.
      上面我们介绍了线程生命活动的A本过程,可以看比,线程的门川)方法是执行体,是践捏的主体.称为线程体.Tluead类的rung方法没有任河操作,囚此要使线程能够实现一定的功能,就要设计m减)方法.下面的线程的创建一节将会介绍怎样实现自己定义的线程体run()方法。   
线程创建后线程处丁创建状态没有分配CPU资渡.当我们通过调用Ykart》力法启动线程时.这时线程处T就绪状态,等待被调度执行.线程的调度是强占式的.优先级离的抢先T优先级长的而得t CPU elf源:当线程被阅度执行时还可以计线程处i-i-W状态。
9.3线程的创建方法
    我们红道Java趁而向对抹的程序语言,用iav。进行程序设计就是设计和使用类。ia.a为我们提供了线程类Thread来创建线程,线程就是Thread类成者其子类的实例对象。下面挽们首先介绍一个创建线程的例子。

热点排行