您的位置:首页 > 编程语言 > Java开发

Java多线程:实现方式

2012-03-03 23:49 573 查看
在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 + "次");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息