`
woxiaoe
  • 浏览: 277951 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Java线程学习笔记(一)

    博客分类:
  • Java
阅读更多

入门,定义一个做倒计时的类,Counter,该类实现了Runnable接口,

 

package com.woxiaoe.study.thread;
/**
 * 倒计时类
 * @author 小e
 *
 * 2010-4-19 下午09:12:02
 */
public class Counter implements Runnable {
	
	private int countNum;
	private static int taskCount = 0;//线程id
	private final int taskId = taskCount++;
	
	public Counter(int countNum) {
		this.countNum = countNum;
	}
	
	public String show(){
		return "Id[" + taskId + "] countNum:" + countNum + "  ";
	}
	@Override
	public void run() {
		while(countNum-- > 0){
			System.out.print(show());
			Thread.yield();
		}
	}
	

}

 测试代码,通过Thread来调用

 

package com.woxiaoe.study.thread;

import java.util.Random;

import junit.framework.TestCase;

public class TestCounter extends TestCase {
	public void testThread(){
		for(int i = 0; i < 5 ; i++){
			new Thread(new Counter(10)).start();
		}
	}

}

通过ExecutorService调用

public void testExecutor(){
		ExecutorService exec = Executors.newCachedThreadPool();
		for(int i = 0; i < 10 ; i++){
			exec.execute(new Counter(10));
		}
		exec.shutdown();
	}
 

 Output:

Id[1] countNum:9  Id[0] countNum:9  Id[3] countNum:9  Id[2] countNum:9  Id[0] countNum:8  Id[1] countNum:8  Id[3] countNum:8  Id[1] countNum:7  Id[4] countNum:9  Id[1] countNum:6  Id[3] countNum:7  Id[3] countNum:6  Id[1] countNum:5  Id[3] countNum:5  Id[1] countNum:4  Id[3] countNum:4  Id[1] countNum:3  Id[3] countNum:3  Id[1] countNum:2  Id[3] countNum:2  Id[1] countNum:1  Id[3] countNum:1  Id[1] countNum:0  Id[3] countNum:0  Id[2] countNum:8  Id[2] countNum:7  Id[2] countNum:6  Id[2] countNum:5  Id[2] countNum:4  Id[2] countNum:3  Id[2] countNum:2  Id[2] countNum:1  Id[2] countNum:0  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics