Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2089457
  • 博文数量: 519
  • 博客积分: 10070
  • 博客等级: 上将
  • 技术积分: 3985
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-29 14:05
个人简介

只问耕耘

文章分类

全部博文(519)

文章存档

2016年(1)

2013年(5)

2011年(46)

2010年(220)

2009年(51)

2008年(39)

2007年(141)

2006年(16)

我的朋友

分类: Java

2010-01-18 15:02:14

为创建一个线程,最简单的方法就是从Thread类继承。这个类包含了创建和运行线程所需的一切东西。Thread最重要的方法是run()。但为了使用run(),必须对其进行过载或者覆盖,使其能充分按自己的吩咐行事。因此,run()属于那些会与程序中的其他线程“并发”或“同时”执行的代码。
下面这个例子可创建任意数量的线程,并通过为每个线程分配一个独一无二的编号(由一个静态变量产生),从而对不同的线程进行跟踪。Thread的run()方法在这里得到了覆盖,每通过一次循环,计数就减1——计数为0时则完成循环(此时一旦返回run(),线程就中止运行)。

package c1;
public class Test extends Thread {
   private int countDown = 5;
   private int threadNumber;
   private static int threadCount = 0;
   public Test() {
     threadNumber = ++threadCount;
     System.out.println("Making " + threadNumber);
   }
   public void run() {
     while(true) {
       System.out.println("Thread " +
         threadNumber + "(" + countDown + ")");
       if(--countDown == 0) return;
     }
   }
   public static void main(String[] args) {
     for(int i = 0; i < 5; i++)
       new Test().start();
     System.out.println("All Threads Started");
   }
 }
/*
输出结果:
Making 1
Making 2
Making 3
Thread 1(5)
Thread 1(4)
Thread 1(3)
Thread 1(2)
Thread 1(1)
Making 4
Thread 2(5)
Thread 2(4)
Thread 2(3)
Thread 2(2)
Making 5
Thread 2(1)
Thread 3(5)
Thread 3(4)
All Threads Started
Thread 4(5)
Thread 4(4)
Thread 4(3)
Thread 4(2)
Thread 4(1)
Thread 3(3)
Thread 5(5)
Thread 5(4)
Thread 5(3)
Thread 5(2)
Thread 5(1)
Thread 3(2)
Thread 3(1)
*/

阅读(951) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~