想要有两个线程,要new几个thread
时间: 2023-08-21 16:07:59 浏览: 64
如果您想要有两个线程同时运行,那么您需要创建两个Thread对象,每个Thread对象代表一个线程。您可以通过创建Thread类的两个实例来实现这一点,例如:
```
Thread thread1 = new Thread(new MyRunnable());
Thread thread2 = new Thread(new MyRunnable());
```
其中,MyRunnable是一个实现了Runnable接口的类,它包含了线程要执行的代码。然后,您可以调用Thread对象的start()方法来启动线程,例如:
```
thread1.start();
thread2.start();
```
这将启动两个线程,它们会同时执行MyRunnable类中的run()方法。
相关问题
使用runable开启一个线程的方式有几种?给出例子
开启一个线程的方式有两种,分别是继承Thread类和实现Runnable接口。以下是使用实现Runnable接口的例子:
```java
public class MyRunnable implements Runnable {
public void run() {
// 线程要执行的任务
System.out.println("Hello, World!");
}
}
public class Main {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
}
}
```
以上代码中,MyRunnable实现了Runnable接口,并在run方法中定义了线程要执行的任务。在Main类中,创建了一个MyRunnable对象,并用它创建了一个Thread对象,最后通过调用start方法来启动线程。
另一种方式是继承Thread类,以下是例子:
```java
public class MyThread extends Thread {
public void run() {
// 线程要执行的任务
System.out.println("Hello, World!");
}
}
public class Main {
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
}
}
```
以上代码中,MyThread继承了Thread类,并在run方法中定义了线程要执行的任务。在Main类中,创建了一个MyThread对象,并通过调用start方法来启动线程。
实现一个多线程任务java
在Java中实现多线程任务可以通过几种不同的方式完成。其中一种常见的方法是通过扩展`Thread`类。当你创建了一个`Thread`的子类后,你可以重写`run`方法来定义线程要执行的任务。然后,你可以创建该子类的实例并调用其`start`方法来启动线程。
另一种常见的方法是实现`Runnable`接口。通过实现`Runnable`接口中的`run`方法来定义任务,并将`Runnable`的实例传递给`Thread`对象,然后调用`Thread`的`start`方法来启动线程。
下面是一个简单的例子,展示了如何通过实现`Runnable`接口来创建一个多线程任务:
```java
public class MyTask implements Runnable {
@Override
public void run() {
// 这里是任务的具体代码
System.out.println("多线程任务执行中...");
}
public static void main(String[] args) {
// 创建MyTask实例
MyTask task = new MyTask();
// 创建Thread实例,并将task作为参数传入
Thread thread1 = new Thread(task);
// 启动线程
thread1.start();
// 也可以创建新的线程来执行相同的任务
Thread thread2 = new Thread(task);
thread2.start();
}
}
```
在这个例子中,`MyTask`类实现了`Runnable`接口,并重写了`run`方法来定义了线程要执行的代码。在`main`方法中,我们创建了`MyTask`的实例,并通过它创建了两个线程`thread1`和`thread2`,然后启动了这两个线程,使它们并发执行。