自定义一个类Demo2,使其实现Runnable接口。 2)在Demo2类中覆写run()方法,在方法内编写synchronized同步代码块,在进入同步代码块时,打印线程名称,然后编写一个for循环,循环体内打印:运行线程名称+循环次数。当循环次数等于3时,跳出循环。 3)编写测试类Example05_7,在Example05_7类的main()方法中,创建一个Demo2对象,利用Thread的构造方法创建两个线程对象,分别命名“张三”和“李四”,执行两个线程的start()方法。
时间: 2024-03-13 11:43:36 浏览: 69
好的,以下是代码示例:
```java
// Demo2.java
public class Demo2 implements Runnable {
@Override
public void run() {
synchronized (this) { // 进入同步代码块
System.out.println(Thread.currentThread().getName() + " 进入同步代码块");
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + " " + i);
if (i == 2) {
break; // 当循环次数等于 3 时跳出循环
}
}
}
}
}
// Example05_7.java
public class Example05_7 {
public static void main(String[] args) {
Demo2 demo = new Demo2();
Thread t1 = new Thread(demo, "张三");
Thread t2 = new Thread(demo, "李四");
t1.start();
t2.start();
}
}
```
以上代码中,Demo2 类实现了 Runnable 接口,并覆写了 run() 方法,在方法内编写了一个 synchronized 同步代码块,在进入同步代码块时打印了线程名称,然后编写了一个 for 循环,循环体内打印了运行线程名称和循环次数。当循环次数等于 3 时,跳出循环。
在 Example05_7 类的 main() 方法中,首先创建了一个 Demo2 对象 demo。然后利用 Thread 的构造方法创建了两个线程对象 t1 和 t2,并分别命名为“张三”和“李四”。最后调用 t1 和 t2 的 start() 方法,启动两个线程。
阅读全文