实现多线程的两种方式
Posted godles
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现多线程的两种方式相关的知识,希望对你有一定的参考价值。
实现Runnable接口线程
步骤:
- 实现Runnable接口
- 重写run()方法
- 实例化对象
- 调用start()方法
public class HelloRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("我是子线程:" + i);
}
}
/**
* @param args
*/
public static void main(String[] args) {
// 实例化子线程
HelloRunnable helloRunnable = new HelloRunnable();
Thread thread = new Thread(helloRunnable);
thread.start();
for (int i = 0; i < 10; i++) {
System.out.println("我是主线程main:" + i);
}
}
}
实现Runnable接口线程改名
步骤:
- 实现Runnable接口
- 重写run()方法
- 实例化对象
- 调用start()方法
- 使用Thread.currentThread().setName()和Thread.currentThread().getName()
public class HelloRunnableName implements Runnable {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("子线程的名称:" + Thread.currentThread().getName() + ":" + i);
}
}
/**
* 主方法/主线程
* @param args
*/
public static void main(String[] args) {
// 实例化子线程
HelloRunnableName helloRunnableName = new HelloRunnableName();
Thread thread = new Thread(helloRunnableName, "我是子线程1");
thread.start();
Thread.currentThread().setName("我是主线程main1");
for (int i = 0; i < 10; i++) {
System.out.println("主线程名称:" + Thread.currentThread().getName()+ ":" + i);
}
}
}
继承Thread类
步骤:
- 继承Thread类
- 重写run()方法
- 实例化对象
- 调用start()方法
public class HelloThread extends Thread {
@Override
public void run() {
// super.run();
for (int i = 0; i < 10; i++) {
System.out.println("我是子线程:" + i);
}
}
/**
* 主方法/主线程
* @param args
*/
public static void main(String[] args) {
HelloThread helloThread = new HelloThread();
helloThread.start();
for (int i = 0; i < 10; i++) {
System.out.println("我是主线程main:"+i);
}
}
}
继承Thread类并改名
- 继承Thread类
- 重写run()方法
- 实例化对象
- 调用start()方法
- 使用Thread.currentThread().setName()和Thread.currentThread().getName()
public class HelloThreadName extends Thread {
public HelloThreadName(String name) {
super(name);
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("子线程名称:" + Thread.currentThread().getName() + ":" + i);
}
}
/**
* 主方法/主线程
* @param args
*/
public static void main(String[] args) {
HelloThreadName helloThread = new HelloThreadName("我是子线程1");
helloThread.start();
Thread.currentThread().setName("我是主线程main1");
for (int i = 0; i < 10; i++) {
System.out.println("主线程名称:" + Thread.currentThread().getName() + ":"+i);
}
}
}
以上是关于实现多线程的两种方式的主要内容,如果未能解决你的问题,请参考以下文章