使用runnable接口方式,创建一个线程,在main中打印学号一千次,在新线程中打印姓名一千次
时间: 2024-03-19 08:44:50 浏览: 22
好的,我来给您编写代码:
```java
public class TestThread {
public static void main(String[] args) {
// 创建一个Runnable对象,用于打印学号
Runnable printId = () -> {
for (int i = 1; i <= 1000; i++) {
System.out.println("学号:" + i);
}
};
// 创建一个线程并启动
new Thread(printId).start();
// 打印姓名
for (int i = 1; i <= 1000; i++) {
System.out.println("姓名:张三");
}
}
}
```
在这个例子中,我们使用了Lambda表达式来创建一个Runnable对象,然后将其传递给Thread构造函数。在main方法中,我们首先创建并启动一个新线程,该线程负责打印学号;然后在主线程中打印姓名。由于两个线程是并行执行的,因此输出顺序可能会有所不同。
相关问题
编写一个多线程的程序一个线程输出20次你的学号,另一个输出20次你的姓名Java代码
```java
public class MultiThreadDemo {
public static void main(String[] args) {
Thread t1 = new Thread(new StudentIdThread());
Thread t2 = new Thread(new StudentNameThread());
t1.start();
t2.start();
}
}
class StudentIdThread implements Runnable {
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("My student id is 2021000000000X.");
}
}
}
class StudentNameThread implements Runnable {
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("My name is John Smith.");
}
}
}
```
1.通过实现Runnable接口的方式实现多线程,有三个工人搬砖,每个人各搬砖10次,谁抢到托运机谁去搬砖,三个工人的名字是学生的学号,学生的姓名,学生的专业。利用多线程模拟工人搬砖过程。
好的,我来为您解答。
首先,我们需要创建一个Worker类,包含工人的姓名、学号和专业信息,以及工人进行搬砖的方法。具体代码如下:
```java
public class Worker {
private String name;
private String id;
private String major;
public Worker(String name, String id, String major) {
this.name = name;
this.id = id;
this.major = major;
}
public void carryBrick(int count) {
for (int i = 0; i < count; i++) {
System.out.println(name + "正在搬砖,已搬砖次数:" + (i+1));
try {
Thread.sleep(1000); // 模拟搬砖的时间
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(name + "搬完了" + count + "块砖!");
}
}
```
接下来,我们创建一个主类WorkerTest,用于模拟三个工人进行搬砖的过程。具体代码如下:
```java
public class WorkerTest {
public static void main(String[] args) {
Worker w1 = new Worker("张三", "001", "土木工程");
Worker w2 = new Worker("李四", "002", "机械制造");
Worker w3 = new Worker("王五", "003", "电子信息");
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
w1.carryBrick(10);
}
}, w1.getName());
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
w2.carryBrick(10);
}
}, w2.getName());
Thread t3 = new Thread(new Runnable() {
@Override
public void run() {
w3.carryBrick(10);
}
}, w3.getName());
t1.start();
t2.start();
t3.start();
}
}
```
在主类中,我们创建了三个工人对象,然后通过创建线程的方式模拟每个工人进行搬砖的过程。最后启动三个线程,即可实现三个工人并发地搬砖。
注意,每个线程都需要传入一个Runnable对象,并重写其run方法。这里我们采用了匿名内部类的方式来实现。
另外,需要注意的是,每个线程需要传入一个名称,我们可以使用工人的姓名作为线程名称。
以上就是基于Runnable接口实现多线程的代码实现。希望能对您有所帮助。