感兴趣的小伙伴可以先看看我的这篇文章哦,打开看看,说不定能帮到你一些~~
1.定义继承 Thread 的类
改写类的 run 方法,要求每 150 毫秒打印一次线程名
在 main 中 3 次实例化这个类,并调用,同时注意显示的结果
实现代码:
package com.zhangyufan.thread;
public class TestMyThread {
public static void main(String[] args) {
MyThread mythread1 = new MyThread();
mythread1.setName("线程1");
mythread1.start();
MyThread mythread2 = new MyThread();
mythread2.setName("线程2");
mythread2.start();
MyThread mythread3 = new MyThread();
mythread3.setName("线程3");
mythread3.start();
}
}
class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(150);
System.out.println(Thread.currentThread().getName()+"--"+i);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
运行结果:
2. 定义实现 Runnable 接口的类
此类的 run 方法,要求每 50 毫秒打印一次线程名
在 main 中 3 次实例化这个类,并调用
实现代码:
package com.zhangyufan.thread;
public class TestMyThread2 {
public static void main(String[] args) {
MyThread2 mythread1 = new MyThread2();
Thread thread1 = new Thread(mythread1, "线程1");
thread1.start();
MyThread2 mythread2 = new MyThread2();
Thread thread2 = new Thread(mythread2, "线程2");
thread2.start();
MyThread2 mythread3 = new MyThread2();
Thread thread3 = new Thread(mythread3, "线程3");
thread3.start();
}
}
class MyThread2 implements Runnable {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(50);
System.out.println(Thread.currentThread().getName()+"--"+i);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
运行结果:
3.在 main 中使用匿名类方式实现 Runnable 接口的类,要求每 120 毫秒打印一次线程名
实现代码:
package com.zhangyufan.thread;
public class TestNoname {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(120);
System.out.println(Thread.currentThread().getName() + "---" + i);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}, "匿名线程");
thread.start();
}
}
运行结果:
4. 然后在执行另一个匿名类,要求每 100 毫秒, 打印一个随机整数
实现代码:
package com.zhangyufan.thread;
import java.util.Random;
public class TestNoname2 {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
Random r = new Random();
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(100);
System.out.println(Thread.currentThread().getName() + "---第" + (i + 1) + "个随机整数" + r.nextInt());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}, "匿名线程").start();
}
}
运行结果: