??xml version="1.0" encoding="utf-8" standalone="yes"?>国产在线视频你懂得,国产成人免费视频网站高清观看视频,欧美精品中文字幕亚洲专区http://www.aygfsteel.com/santicom/archive/2011/09/02/357783.htmlJamieJamieThu, 01 Sep 2011 18:27:00 GMThttp://www.aygfsteel.com/santicom/archive/2011/09/02/357783.htmlhttp://www.aygfsteel.com/santicom/comments/357783.htmlhttp://www.aygfsteel.com/santicom/archive/2011/09/02/357783.html#Feedback0http://www.aygfsteel.com/santicom/comments/commentRss/357783.htmlhttp://www.aygfsteel.com/santicom/services/trackbacks/357783.html本程序可以控?个线E按序执行Q?代码如下Q?/span>

public class Test3 {

 public static void main(String[] args) throws IOException {
  final Test obj = new Test();
  
  new Thread()
  {
   public void run()
   {
    obj.m1();
   }
  }.start();
  new Thread()
  {
   public void run()
   {
    obj.m2();
   }
  }.start();
  new Thread()
  {
   public void run()
   {
    obj.m3();
   }
  }.start();
  
 }

}

class Test
{
 static int count;
 volatile int target = 1;
 synchronized void m1()
 { 
   for (int i = 0; i < 10; i++)
   {
    while (target == 2 || target == 3)
    {
     try {
      wait();
     } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
    System.out.println("m1() =" + i);
    target = 2;
    notifyAll();
   }
 }
 
 synchronized void m2()
 {
  for (int i = 0; i < 10; i++)
  {
   while (target == 1 || target == 3)
   {
    try {
     wait();
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   System.out.println("m2() =" + i);
   target = 3;
   notifyAll();
  }
 }
 
 synchronized void m3()
 {
  for (int i = 0; i < 10; i++)
  {
   while (target == 1 || target == 2)
   {
    try {
     wait();
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   System.out.println("m3() =" + i);
   target = 1;
   notifyAll();
  }
 }
}



Jamie 2011-09-02 02:27 发表评论
]]>
U程的同步与׃nhttp://www.aygfsteel.com/santicom/archive/2011/09/02/357778.htmlJamieJamieThu, 01 Sep 2011 17:38:00 GMThttp://www.aygfsteel.com/santicom/archive/2011/09/02/357778.htmlhttp://www.aygfsteel.com/santicom/comments/357778.htmlhttp://www.aygfsteel.com/santicom/archive/2011/09/02/357778.html#Feedback0http://www.aygfsteel.com/santicom/comments/commentRss/357778.htmlhttp://www.aygfsteel.com/santicom/services/trackbacks/357778.html阅读全文

Jamie 2011-09-02 01:38 发表评论
]]>
U程的状态与调度http://www.aygfsteel.com/santicom/archive/2011/09/01/357765.htmlJamieJamieThu, 01 Sep 2011 13:43:00 GMThttp://www.aygfsteel.com/santicom/archive/2011/09/01/357765.htmlhttp://www.aygfsteel.com/santicom/comments/357765.htmlhttp://www.aygfsteel.com/santicom/archive/2011/09/01/357765.html#Feedback0http://www.aygfsteel.com/santicom/comments/commentRss/357765.htmlhttp://www.aygfsteel.com/santicom/services/trackbacks/357765.html  1,U程的生命周?/span>

        U程从创建、运行到l束L处于下面五个状态之一Q新建状态、就l状态、运行状态、阻塞状态及(qing)M状态?/p>



    1.新徏状?New)Q?nbsp;
        当用new操作W创Z个线E时Q?例如new Thread(r)Q线E还没有开始运行,此时U程处在新徏状态?当一个线E处于新生状态时Q程序还没有开始运行线E中的代?br />
     2.qA状?/span>(Runnable)

        一个新创徏的线Eƈ不自动开始运行,要执行线E,必须调用U程?/span>start()Ҏ(gu)。当U程对象调用start()Ҏ(gu)卛_动了U程Q?/span>start()Ҏ(gu)创徏U程q行的系l资源,q调度线E运?/span>run()Ҏ(gu)。当start()Ҏ(gu)q回后,U程处于就l状态?/span>

        处于qA状态的U程q不一定立卌?/span>run()Ҏ(gu)Q线E还必须同其他线E竞?/span>CPU旉Q只有获?/span>CPU旉才可以运行线E。因为在?/span>CPU的计机pȝ中,不可能同时运行多个线E,一个时M有一个线E处于运行状态。因此此时可能有多个U程处于qA状态。对多个处于qA状态的U程是由Javaq行时系l的U程调度E序(thread scheduler)来调度的?br />
    3.q行状?/span>(Running)

        当线E获?/span>CPU旉后,它才q入q行状态,真正开始执?/span>run()Ҏ(gu).

    
4. d状?/span>(Blocked)

        U程q行q程中,可能׃各种原因q入d状?
        1>U程通过调用sleepҎ(gu)q入睡眠状态;
        2>U程调用一个在I/O上被d的操作,卌操作在输入输出操作完成之前不?x)返回到它的调用者;
        3>U程试图得到一个锁Q而该锁正被其他线E持有;
        4>U程在等待某个触发条Ӟ
        ......           

        所谓阻塞状态是正在q行的线E没有运行结束,暂时让出
CPUQ这时其他处于就l状态的U程可以获?/span>CPU旉Q进入运行状态?br />
    5. M状?/span>(Dead)

        有两个原因会(x)DU程MQ?br />        1) runҎ(gu)正常退自然死亡,
        2) 一个未捕获的异常终止了runҎ(gu)而ɾU程猝死?br />        Z定U程在当前是否存?gu)zȝQ就是要么是可运行的Q要么是被阻塞了Q,需要用isAliveҎ(gu)。如果是可运行或被阻塞,q个Ҏ(gu)q回trueQ?如果U程仍旧是new状态且不是可运行的Q?或者线E死亡了Q则q回false.




2,  U程的优先和调?/span>

Java的每个线E都有一个优先Q当有多个线E处于就l状态时Q线E调度程序根据线E的优先U调度线E运行?/span>

可以用下面方法设|和q回U程的优先?/span>

    · public final void setPriority(int newPriority) 讄U程的优先?/span>

    · public final int getPriority() q回U程的优先?/span>

newPriority为线E的优先U,其取gؓ(f)1?/span>10之间的整敎ͼ也可以?/span>Threadcd义的帔R来设|线E的优先U,q些帔R分别为:(x)Thread.MIN_PRIORITY?/span>Thread.NORM_PRIORITY?/span>Thread.MAX_PRIORITYQ它们分别对应于U程优先U的1?/span>5?/span>10Q数D大优先񔭑高。当创徏JavaU程Ӟ如果没有指定它的优先U,则它从创U程那里l承优先U?/span>

一般来_(d)只有在当前线E停止或׃某种原因被阻塞,较低优先U的U程才有Z(x)q行?/span>

前面说过多个U程可ƈ发运行,然而实际上q不Lq样。由于很多计机都是?/span>CPU的,所以一个时d能有一个线E运行,多个U程的ƈ发运行只是觉。在?/span>CPU机器上多个线E的执行是按照某U顺序执行的Q这UCؓ(f)U程的调?/span>(scheduling)?/span>

大多数计机仅有一?/span>CPUQ所以线E必M其他U程׃nCPU。多个线E在单个CPU是按照某U顺序执行的。实际的调度{略随系l的不同而不同,通常U程调度可以采用两种{略调度处于qA状态的U程?/span>

(1) 抢占式调度策?/span>

     Javaq行时系l的U程调度法是抢占式?/span> (preemptive)?/span>Javaq行时系l支持一U简单的固定优先U的调度法。如果一个优先比其他Q何处于可q行状态的U程都高的线E进入就l状态,那么q行时系l就?x)选择该线E运行。新的优先较高的线E抢?/span>(preempt)了其他线E。但?/span>Javaq行时系lƈ不抢占同优先U的U程。换句话_(d)Javaq行时系l不是分时的(time-slice)。然而,ZJava Threadcȝ实现pȝ可能是支持分时的Q因此编写代码时不要依赖分时。当pȝ中的处于qA状态的U程都具有相同优先ӞU程调度E序采用一U简单的、非抢占式的轮{的调度顺序?/span>

(2) 旉片轮转调度策?/span>

    有些pȝ的线E调度采用时间片轮{(round-robin)调度{略。这U调度策略是从所有处于就l状态的U程中选择优先U最高的U程分配一定的CPU旉q行。该旉q后再选择其他U程q行。只有当U程q行l束、放?/span>(yield)CPU或由于某U原因进入阻塞状态,低优先的线E才有机?x)执行。如果有两个优先U相同的U程都在{待CPUQ则调度E序以轮转的方式选择q行的线E?/p>

 3.  U程状态的改变

一个线E在其生命周期中可以从一U状态改变到另一U状态,U程状态的变迁如图所C:(x)

    
    
1>  控制U程的启动和l束

当一个新建的U程调用它的start()Ҏ(gu)后即q入qA状态,处于qA状态的U程被线E调度程序选中可以获?/span>CPU旉Q进入运行状态,该线E就开始运?/span>run()Ҏ(gu)?/span>

控制U程的结束稍微复杂一炏V如果线E的run()Ҏ(gu)是一个确定次数的循环Q则循环l束后,U程q行q束了Q线E对象即q入M状态。如?/span>run()Ҏ(gu)是一个不定循环Q早期的Ҏ(gu)是调用线E对象的stop()Ҏ(gu)Q然而由于该Ҏ(gu)可能DU程死锁Q因此从1.1版开始,不推荐用该Ҏ(gu)l束U程。一般是通过讄一个标志变量,在程序中改变标志变量的值实现结束线E。请看下面的例子Q?/span>

E序 ThreadStop.java

import java.util.*;

class Timer implements Runnable{

    
boolean flag=true;
    
public void run(){
      
while(flag){
        System.out.print(
"\r\t"+new Date()+"");
        
try{
              Thread.sleep(
1000);
        }
catch(InterruptedException e){} 
      }
      System.out.println(
"\n"+Thread.currentThread().getName()+" Stop");
    }

    
public void stopRun(){
           flag 
= false;
    }
}

public class ThreadStop{
    
public static void main(String args[]){
       Timer timer 
= new Timer();
       Thread thread 
= new Thread(timer);       
       thread.setName(
"Timer");
       thread.start();

       
for(int i=0;i<100;i++){
         System.out.print(
"\r"+i);
        
try{
              Thread.sleep(
100);
        }
catch(InterruptedException e){} 
       }     
       timer.stopRun();
    }
}

该程序在TimercM定义了一个布?yu)(dng)变?/span>flagQ同时定义了一?/span>stopRun()Ҏ(gu)Q在其中该变量讄?/span>false。在ȝ序中通过调用该方法,从而改变该变量的|使得run()Ҏ(gu)?/span>while循环条g不满I从而实现结束线E的q行?/span>

说明  ?/span>ThreadcM除了stop()Ҏ(gu)被标注ؓ(f)不推?/span>(deprecated) 使用外,suspend()Ҏ(gu)?/span>resume()Ҏ(gu)也被标明不推荐用,q两个方法原来用作线E的挂v和恢?

2>  U程d条g

处于q行状态的U程除了可以q入M状态外Q还可能q入qA状态和d状态。下面分别讨两种情况Q?/span>

(1) q行状态到qA状?/span>

处于q行状态的U程如果调用?/span>yield()Ҏ(gu)Q那么它?yu)放?/span>CPU旉Q当前正在q行的线E进入就l状态。这时有几种可能的情况:(x)如果没有其他的线E处于就l状态等待运行,该线E会(x)立即l箋q行Q如果有{待的线E,此时U程回到qA状态状态与其他U程竞争CPU旉Q当有比该线E优先高的U程Ӟ高优先的线E进入运行状态,当没有比该线E优先高的U程Ӟ但有同优先的线E,则由U程调度E序来决定哪个线E进入运行状态,因此U程调用yield()Ҏ(gu)只能?/span>CPU旉让给h同优先的或高优先的线E而不能让l低优先U的U程?/span>

一般来_(d)在调用线E的yield()Ҏ(gu)可以使耗时的线E暂停执行一D|_(d)使其他线E有执行的机?x)?/span>

(2) q行状态到d状?/span>

有多U原因可使当前运行的U程q入d状态,q入d状态的U程当相应的事gl束或条件满xq入qA状态。ɾU程q入d状态可能有多种原因Q?/span>

U程调用?/span>sleep()Ҏ(gu)Q线E进入睡眠状态,此时该线E停止执行一D|间。当旉到时该线E回到就l状态,与其他线E竞?/span>CPU旉?/span>

ThreadcM定义了一?/span>interrupt()Ҏ(gu)。一个处于睡眠中的线E若调用?/span>interrupt()Ҏ(gu)Q该U程立即l束睡眠q入qA状态?/span>

如果一个线E的q行需要进?/span>I/O操作Q比如从键盘接收数据Q这时程序可能需要等待用L(fng)输入Q这时如果该U程一直占?/span>CPUQ其他线E就得不到运行。这U情늧?/span>I/Od。这时该U程׃(x)dq行状态而进入阻塞状态?/span>Java语言的所?/span>I/OҎ(gu)都具有这U行为?/span>

③ 有时要求当前U程的执行在另一个线E执行结束后再l执行,q时可以调用join()Ҏ(gu)实现Q?/span>join()Ҏ(gu)有下面三U格式:(x)

·         public void join() throws InterruptedException 使当前线E暂停执行,{待调用该方法的U程l束后再执行当前U程?/span>

·         public void join(long millis) throws InterruptedException 最多等?/span>millis毫秒后,当前U程l箋执行?/span>

·         public void join(long millis, int nanos) throws InterruptedException 可以指定多少毫秒、多纳U后l箋执行当前U程?/span>

上述Ҏ(gu)使当前线E暂停执行,q入d状态,当调用线E结束或指定的时间过后,当前U程U程q入qA状态,例如执行下面代码Q?/span>

t.join();

当前U程q入d状态,当线E?/span>t执行l束后,当前U程才能l箋执行?/span>

④ U程调用?/span>wait()Ҏ(gu)Q等待某个条件变量,此时该线E进入阻塞状态。直到被通知(调用?/span>notify()?/span>notifyAll()Ҏ(gu))l束{待后,U程回到qA状态?/span>

另外如果U程不能获得对象锁,也进入就l状态?/span>

后两U情况在下一节讨论?/span>





















Jamie 2011-09-01 21:43 发表评论
]]>
复习(fn)下java多线E?/title><link>http://www.aygfsteel.com/santicom/archive/2011/09/01/357763.html</link><dc:creator>Jamie</dc:creator><author>Jamie</author><pubDate>Thu, 01 Sep 2011 12:46:00 GMT</pubDate><guid>http://www.aygfsteel.com/santicom/archive/2011/09/01/357763.html</guid><wfw:comment>http://www.aygfsteel.com/santicom/comments/357763.html</wfw:comment><comments>http://www.aygfsteel.com/santicom/archive/2011/09/01/357763.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/santicom/comments/commentRss/357763.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/santicom/services/trackbacks/357763.html</trackback:ping><description><![CDATA[<div>好久没搞q个了,今天把以前的W记整理下,当复?fn)? <h3><span style="font-size: 12pt">Thread</span><span style="font-family: 黑体; font-size: 12pt">cd</span><span style="font-size: 12pt">Runnable</span><span style="font-family: 黑体; font-size: 12pt">接口</span><span style="font-size: 12pt"></span></h3> <p style="text-indent: 24pt"><span style="font-family: 宋体; font-size: 12pt">多线E是一个程序中可以有多D代码同时运行,那么q些代码写在哪里Q如何创建线E对象呢</span><span style="font-size: 12pt">?</span></p> <p><span style="font-family: 宋体; font-size: 12pt">    首先Q我们来?/span><span style="font-size: 12pt">Java</span><span style="font-family: 宋体; font-size: 12pt">语言实现多线E编E的cd接口。在</span><span style="font-size: 12pt">java.lang</span><span style="font-family: 宋体; font-size: 12pt">包中定义?/span><span style="font-size: 12pt">Runnable</span><span style="font-family: 宋体; font-size: 12pt">接口?/span><span style="font-size: 12pt">Thread</span><span style="font-family: 宋体; font-size: 12pt">cR?/span></p> <p> </p> <p style="text-indent: 24pt"><span style="font-size: 12pt">Runnable</span><span style="font-family: 宋体; font-size: 12pt">接口中只定义了一个方法:(x)</span></p> <p style="line-height: normal; text-indent: -17pt; margin: 0cm 0cm 0pt 38pt"><span style="font-family: Symbol; font-size: 12pt">·<span style="font: 7pt 'Times New Roman'">         </span></span><span style="font-size: 12pt">public abstract void run() </span></p> <p style="text-indent: 24pt"><span style="font-family: 宋体; font-size: 12pt">q个Ҏ(gu)要由实现?/span><span style="font-size: 12pt">Runnable</span><span style="font-family: 宋体; font-size: 12pt">接口的类实现?/span><span style="font-size: 12pt">Runnable</span><span style="font-family: 宋体; font-size: 12pt">对象UCؓ(f)可运行对象,一个线E的q行是执行该对象的</span><span style="font-size: 12pt">run()</span><span style="font-family: 宋体; font-size: 12pt">Ҏ(gu)?/span></p> <p style="text-indent: 24pt"><span style="font-size: 12pt"><br />      Thread</span><span style="font-family: 宋体; font-size: 12pt">cdC</span><span style="font-size: 12pt">Runnable</span><span style="font-family: 宋体; font-size: 12pt">接口Q因?/span><span style="font-size: 12pt">Thread</span><span style="font-family: 宋体; font-size: 12pt">对象也是可运行对象。同?/span><span style="font-size: 12pt">Thread</span><span style="font-family: 宋体; font-size: 12pt">cM是线E类<span style="font-family: 宋体; font-size: 12pt">Q该cȝ常用构造方法如下:(x)</p> <p style="line-height: normal; text-indent: -17pt; margin: 0cm 0cm 0pt 38pt; mso-list: l0 level1 lfo1; tab-stops: list 39.0pt" class="MsoNormal"><span style="font-family: Symbol; font-size: 12pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol" lang="EN-US"><span style="mso-list: Ignore">·<span style="font: 7pt 'Times New Roman'">         </span></span></span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">public Thread() <o:p></o:p></font></span></p> <p style="line-height: normal; text-indent: -17pt; margin: 0cm 0cm 0pt 38pt; mso-list: l0 level1 lfo1; tab-stops: list 39.0pt" class="MsoNormal"><span style="font-family: Symbol; font-size: 12pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol" lang="EN-US"><span style="mso-list: Ignore">·<span style="font: 7pt 'Times New Roman'">         </span></span></span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">public Thread(Runnable target)<o:p></o:p></font></span></p> <p style="line-height: normal; text-indent: -17pt; margin: 0cm 0cm 0pt 38pt; mso-list: l0 level1 lfo1; tab-stops: list 39.0pt" class="MsoNormal"><span style="font-family: Symbol; font-size: 12pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol" lang="EN-US"><span style="mso-list: Ignore">·<span style="font: 7pt 'Times New Roman'">         </span></span></span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">public Thread(String name)<o:p></o:p></font></span></p> <p style="line-height: normal; text-indent: -17pt; margin: 0cm 0cm 0pt 38pt; mso-list: l0 level1 lfo1; tab-stops: list 39.0pt" class="MsoNormal"><span style="font-family: Symbol; font-size: 12pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol" lang="EN-US"><span style="mso-list: Ignore">·<span style="font: 7pt 'Times New Roman'">         </span></span></span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">public Thread(Runnable target, String name)<br /><span style="font-family: 'Times New Roman'; font-size: 12pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">target</span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">为线E运行的目标对象Q即U程调用</span><span style="font-family: 'Times New Roman'; font-size: 12pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">start()</span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">Ҏ(gu)启动后运行那个对象的</span><span style="font-family: 'Times New Roman'; font-size: 12pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">run()</span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">Ҏ(gu)Q该对象的类型ؓ(f)</span><span style="font-family: 'Times New Roman'; font-size: 12pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">Runnable</span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">Q若没有指定目标对象Q则以当前类对象为目标对象,</span><span style="font-family: 'Times New Roman'; font-size: 12pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US">name</span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">为线E名</span><o:p></o:p></font></span></p> <p style="text-indent: 24pt"><br /></span><span style="font-size: 12pt"></span></p> <p style="text-indent: 24pt"></span><span style="font-size: 12pt"></span> </p> <h2 style="margin: 18pt 0cm"><span style="font-size: 12pt" lang="EN-US"><span style="mso-spacerun: yes"><font face="Times New Roman">  </font></span></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">U程的创?/span> </h2> <p style="text-indent: 24pt"><span style="font-family: 宋体; font-size: 12pt">介绍下如何创建和q行U程的两U方法。线E运行的代码是实现?/span><span style="font-size: 12pt">Runnable</span><span style="font-family: 宋体; font-size: 12pt">接口的类?/span><span style="font-size: 12pt">run()</span><span style="font-family: 宋体; font-size: 12pt">Ҏ(gu)或者是</span><span style="font-size: 12pt">Thread</span><span style="font-family: 宋体; font-size: 12pt">cȝ子类?/span><span style="font-size: 12pt">run()</span><span style="font-family: 宋体; font-size: 12pt">Ҏ(gu)Q因此构造线E体有两种Ҏ(gu)Q?br /></span><span style="font-family: Symbol; font-size: 12pt"><span style="font: 7pt 'Times New Roman'"><span style="font-family: Symbol; font-size: 12pt">    ·<span style="font: 7pt 'Times New Roman'">        </span></span> </span></span><span style="font-family: 宋体; font-size: 12pt">l承</span><span style="font-size: 12pt">Thread</span><span style="font-family: 宋体; font-size: 12pt">cdƈ覆盖它的</span><span style="font-size: 12pt">run()</span><span style="font-family: 宋体; font-size: 12pt">Ҏ(gu)Q?br /><span style="font-family: Symbol; font-size: 12pt">    ·<span style="font: 7pt 'Times New Roman'">        </span></span></span><span style="font-family: 宋体; font-size: 12pt">实现</span><span style="font-size: 12pt">Runnable</span><span style="font-family: 宋体; font-size: 12pt">接口q实现它?/span><span style="font-size: 12pt">run()</span><span style="font-family: 宋体; font-size: 12pt">Ҏ(gu)?/p> <h3 style="margin: 6pt 0cm"><span style="font-size: 12pt" lang="EN-US"><span style="mso-spacerun: yes"><font face="Times New Roman">  1Q?/font></span></span><span style="font-family: 黑体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">l承</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">Thread</font></span><span style="font-family: 黑体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">cd建线E?/span><span style="font-size: 12pt" lang="EN-US"><o:p></o:p></span></h3> <p style="text-indent: 24pt; margin: 0cm 0cm 0pt; mso-char-indent-count: 2.0" class="MsoNormal"><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通过l承</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">Thread</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">c,q覆?/span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">run()</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ(gu)Q这时就可以用该cȝ实例作ؓ(f)U程的目标对象。下面的E序定义?/span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">SimpleThread</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">c,它承了</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">Thread</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">cdƈ覆盖?/span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">run()</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ(gu)?/span><span style="font-size: 12pt" lang="EN-US"><o:p></o:p></span></p> <p style="text-indent: 24pt; margin: 0cm 0cm 0pt;background: silver; mso-char-indent-count: 2.0" class="MsoBodyText"><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">E序</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">SimpleThread.java<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">public class SimpleThread extends Thread{<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>public SimpleThread(String str){<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span><span style="mso-spacerun: yes">  </span>super(str);<o:p></o:p></font></span></p> <p style="text-indent: 12pt; margin: 0cm 0cm 0pt 31.5pt; mso-char-indent-count: 1.0; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">}<o:p></o:p></font></span></p> <p style="text-indent: 12pt; margin: 0cm 0cm 0pt 31.5pt; mso-char-indent-count: 1.0; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">public void run(){<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span><span style="mso-spacerun: yes">  </span>for(int i=0; i<100; i++){<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span><span style="mso-spacerun: yes">  </span>System.out.println(getName()+" = "+ i);<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span><span style="mso-spacerun: yes">  </span><span style="mso-spacerun: yes">  </span>try{<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">     </span><span style="mso-spacerun: yes">    </span>sleep((int)(Math.random()*100));<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span><span style="mso-spacerun: yes">  </span>}catch(InterruptedException e){}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>} <o:p></o:p></font></span></p> <p style="text-indent: 24pt; margin: 0cm 0cm 0pt 31.5pt; mso-char-indent-count: 2.0; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">System.out.println(getName()+ " DONE");<o:p></o:p></font></span></p> <p style="text-indent: 12pt; margin: 0cm 0cm 0pt 31.5pt; mso-char-indent-count: 1.0; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 6pt; mso-para-margin-bottom: .5gd" class="1"><span style="font-size: 12pt; mso-font-kerning: 0pt" lang="EN-US"><font face="Times New Roman">_____________________________________________________________________________</font></span><span style="font-family: 宋体; font-size: 12pt; mso-font-kerning: 0pt">▃</span><span style="font-size: 12pt; mso-font-kerning: 0pt" lang="EN-US"><o:p></o:p></span></p> <p style="margin: 0cm 0cm 0pt" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>SimpleThread</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">cȝ承了</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">Thread</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">c,q覆盖了</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">run()</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ(gu)Q该Ҏ(gu)是U程体?/span><span style="font-size: 12pt" lang="EN-US"><o:p></o:p></span></p> <p style="text-indent: 24pt; margin: 0cm 0cm 0pt;background: silver; mso-char-indent-count: 2.0" class="MsoBodyText"><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">E序</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"> ThreadTest.java<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">public class ThreadTest{<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>public static void main(String args[]){<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>Thread t1 = new SimpleThread("Runner A");<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>Thread t2 = new SimpleThread("Runner B");<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>t1.start();<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>t2.start();<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes"> </span>}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 6pt; mso-para-margin-bottom: .5gd" class="1"><span style="font-size: 12pt; mso-font-kerning: 0pt" lang="EN-US"><font face="Times New Roman">_____________________________________________________________________________</font></span><span style="font-family: 宋体; font-size: 12pt; mso-font-kerning: 0pt">▃</span><span style="font-size: 12pt; mso-font-kerning: 0pt" lang="EN-US"><o:p></o:p></span></p> <p style="text-indent: 24pt; margin: 0cm 0cm 0pt; mso-char-indent-count: 2.0" class="MsoNormal"><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">?/span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">ThreadTest</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">cȝ</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">main()</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ(gu)中创Z两个</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">SimpleThread</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">cȝU程对象q调用线E类?/span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">start()</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ(gu)启动U程。构造线E时没有指定目标对象Q所以线E启动后执行本类?/span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">run()</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ(gu)?/span><span style="font-size: 12pt" lang="EN-US"><o:p></o:p></span></p> <p style="text-indent: 24pt; margin: 0cm 0cm 0pt; mso-char-indent-count: 2.0" class="MsoNormal"><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">注意Q实际上</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">ThreadTest</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">E序中有三个U程同时q行</span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Q在应用E序?/span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">main()</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ(gu)启动Ӟ</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">JVM</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">创Z个主U程Q在ȝE中可以创徏其他U程?br /><br /></p> <h3 style="margin: 6pt 0cm"><span style="font-size: 12pt" lang="EN-US"><span style="mso-spacerun: yes"><font face="Times New Roman">  2Q?/font></span></span><span style="font-family: 黑体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实现</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">Runnable</font></span><span style="font-family: 黑体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口创徏U程</span><span style="font-size: 12pt" lang="EN-US"><o:p></o:p></span></h3> <p style="text-indent: 24pt; margin: 0cm 0cm 0pt; mso-char-indent-count: 2.0" class="MsoNormal"><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以定义一个类实现</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">Runnable</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口Q然后将该类对象作ؓ(f)U程的目标对象。实?/span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">Runnable</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口是实现</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">run()</font></span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">Ҏ(gu)?/span><span style="font-size: 12pt" lang="EN-US"><o:p></o:p></span></p> <p style="text-indent: 24pt; margin: 0cm 0cm 0pt; mso-char-indent-count: 2.0" class="MsoNormal"><span style="font-family: 宋体; font-size: 12pt">下面E序通过实现</span><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">Runnable</font></span><span style="font-family: 宋体; font-size: 12pt">接口构造线E体?span lang="EN-US"><o:p></o:p></span></span></p> <p style="text-indent: 24pt; margin: 0cm 0cm 0pt;background: silver; mso-char-indent-count: 2.0" class="MsoBodyText"><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">E序</span><span style="font-size: 12pt"><font face="Times New Roman"> <span lang="EN-US">ThreadTest.java<o:p></o:p></span></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">class T1 implements Runnable{<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>public void run(){<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>for(int i=0;i<15;i++)<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">      </span>System.out.println("Runner A="+i);<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">class T2 implements Runnable{<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>public void run(){<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>for(int j=0;j<15;j++)<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">      </span>System.out.println("Runner B="+j);<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">public class ThreadTest{<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>public static void main(String args[]){<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>Thread t1=new Thread(new T1(),"Thread A");<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>Thread t2=new Thread(new T2(),"Thread B");<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>t1.start();<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">    </span>t2.start();<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman"><span style="mso-spacerun: yes">  </span>}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 0pt 31.5pt; mso-para-margin-left: 3.0gd" class="1"><span style="font-size: 12pt" lang="EN-US"><font face="Times New Roman">}<o:p></o:p></font></span></p> <p style="margin: 0cm 0cm 6pt; mso-para-margin-bottom: .5gd" class="1"><span style="font-size: 12pt; mso-font-kerning: 0pt" lang="EN-US"><font face="Times New Roman">_____________________________________________________________________________</font></span><span style="font-family: 宋体; font-size: 12pt; mso-font-kerning: 0pt">▃</span><span style="font-size: 12pt; mso-font-kerning: 0pt" lang="EN-US"><o:p></o:p></span></p> <p style="text-indent: 24pt; margin: 0cm 0cm 0pt; mso-char-indent-count: 2.0" class="MsoNormal"><br /><br /><br />    </span><br /><br /></span></p> <p> </p><br /><br /></div><img src ="http://www.aygfsteel.com/santicom/aggbug/357763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/santicom/" target="_blank">Jamie</a> 2011-09-01 20:46 <a href="http://www.aygfsteel.com/santicom/archive/2011/09/01/357763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ͩ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʳ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">˺</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ī񹤿</a>| <a href="http://" target="_blank">Ƹ</a>| <a href="http://" target="_blank">Ͱ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͨɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˲</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ρɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank">޳</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͨμ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">·</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˹</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>