java中runnable的用法解析

1、类结构,首先有两个类,一个是测试类Main,一个是线程类MyThread。

2、MyThread

package com.test.thread;

import java.lang.management.ThreadInfo;

public class MyThread implements Runnable {

	String name=null;
	MyThread(String name)
	{
		this.name=name;
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
			while(true)
			{
				System.out.println(name+":输出结果...");
			}
	}

}

Main

package com.test.thread;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyThread mya=new MyThread("线程A");
		Thread testA=new Thread(mya);
		testA.start();
		
		MyThread myb=new MyThread("线程B");
		Thread testB=new Thread(myb);
		testB.start();
		
	}

}


3、输出结果



4、进阶版

用上面的截图还不好说明问题,因为运行速度比较快,看不出两者交替运行,如果在线程中假如线程休眠函数,让线程运行一段时间就休眠,然后重新恢复会比较直观,改动代码如下。

package com.test.thread;

import java.lang.management.ThreadInfo;

public class MyThread implements Runnable {

	String name=null;
	MyThread(String name)
	{
		this.name=name;
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
			while(true)
			{
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				System.out.println(name+":输出结果...");
			}
	}

}

5、运行结果



版权声明:本文为jianghuihong2012原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。