本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1.实例化一下线程 t1 置此线程名为你的姓名 此线程循环输入 20 行内容,每次中间休眠 50ms,然后启动 然后在主线程中 先输出主线程的线程名 然后强制让线程 t1 先执行完
实现代码:
package com.zhangyufan.thread;
import java.util.Scanner;
public class TestThreadJoin {
public static void main(String[] args) throws InterruptedException {
ThreadJoin mythread = new ThreadJoin();
Thread t1 = new Thread(mythread, "自己的姓名");
t1.start();
System.out.println(Thread.currentThread().getName());
t1.join();
}
}
class ThreadJoin implements Runnable {
@Override
public void run() {
String s;
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 20; i++) {
s = sc.nextLine();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
运行结果:
- 实例化一下线程 t2 置此线程名为你的姓名 此线程循环输出线程名及序号,每次中间休眠 500ms,启动死循环 然后在主线程中 主线程休眠 1 秒 中断线程 t2
实现代码:
package com.zhangyufan.thread;
public class TestThreadInterrupt {
public static void main(String[] args) throws InterruptedException {
ThreadInterrupt mythread = new ThreadInterrupt();
Thread t2 = new Thread(mythread, "自己的姓名");
t2.start();
Thread.sleep(1000);
t2.interrupt();
}
}
class ThreadInterrupt implements Runnable {
@Override
public void run() {
int i = 0;
while (true) {
System.out.println(Thread.currentThread().getName() + " 序号:" + i++);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
System.out.println("休眠被终止");
return;
}
}
}
}
运行结果: