Java多线程:实现方式

在Java中, 多线程的实现有两种方式:
扩展java.lang.Thread类
实现java.lang.Runnable接口
方法1
/**
 * @Description: 继承Thread类, 实现多线程.
 * @author snoopy
 * @blog http://blog.csdn.net/huang_xw
 */
package basic.a_start;

import org.apache.log4j.Logger;

public class TestThread extends Thread {
	private static Logger logger = Logger.getLogger(TestThread.class);

	public static void main(String[] args) {
		TestThread test = new TestThread();
		logger.debug("在Main线程中启动线程!");
		test.start();
	}
	
	public void run() {
		logger.debug("在线程中运行!");
	}
}
方法2
/**
 * @Description: 测试Runnable类实现的多线程程序
 * @author snoopy
 * @blog http://blog.csdn.net/huang_xw
 */
package basic.a_start;

import org.apache.log4j.Logger;

public class TestRunnable {
	private static Logger logger = Logger.getLogger(TestRunnable.class);

	public static void main(String[] args) {
		// 1. 将任务处理代码移到实现了Runnable接口的类的run方法中。
		// 2. 创建任务类的一个对象
		// 3. 由Runnable创建Thread对象
		// 4. 启动线程
		ImpRunnable r1 = new ImpRunnable();
		ImpRunnable r2 = new ImpRunnable();

		// 给线程命名有两种方式
		// 1.虚拟机命名 2.用Thread类的构造方法
		Thread t1 = new Thread(r1, "线程1");
		Thread t2 = new Thread(r2, "线程2");

		t1.start();
		t2.start();
	}
}

class ImpRunnable implements Runnable {
	private static Logger logger = Logger.getLogger(ImpRunnable.class);

	// 当线程目标run()方法结束时该线程完成。
	public void run() {
		for (int i = 0; i < 10; i++) {
			// for循环用来模拟一个耗时的操作
			for (long k = 0; k < 100000000; k++)
				;
			// 获取当前线程的对象的方法是: Thread.currentThread()
			logger.debug(Thread.currentThread().getName() + " 运行" + ": 第" + i + "次");
		}
	}
}



你可能感兴趣的:(java,thread,多线程,String,Blog,Class)