3、 用实现接口Runable方式写一个三线程的程序,分别在屏幕上打印0,0+1,0+1+2,0+1+2+…+100的值。给线程加同步方法
时间: 2023-12-09 18:06:53 浏览: 60
基于JAVA的多线程实现方法-实现Runnable接口
好的,以下是对应的Java代码:
```java
public class MyRunnable implements Runnable {
private int num;
public MyRunnable(int num) {
this.num = num;
}
@Override
public synchronized void run() {
int sum = 0;
for (int i = 0; i <= num; i++) {
sum += i;
}
System.out.println(Thread.currentThread().getName() + ": Sum is " + sum);
}
}
public class Main {
public static void main(String[] args) {
MyRunnable r = new MyRunnable(100);
Thread t1 = new Thread(r, "Thread 1");
Thread t2 = new Thread(r, "Thread 2");
Thread t3 = new Thread(r, "Thread 3");
t1.start(); // 启动线程1
t2.start(); // 启动线程2
t3.start(); // 启动线程3
}
}
```
以上代码定义了一个名为`MyRunnable`的类,实现了`Runnable`接口,并且在`run()`方法上加上`synchronized`关键字,表示该方法是同步的。在`Main`类中创建了一个`MyRunnable`类的实例,并创建了三个线程实例。每个线程执行`run()`方法时,会打印出线程的名字和从0到指定数字的和。由于`run()`方法是同步的,因此不同线程之间对该方法的访问是互斥的,保证了线程安全。
阅读全文