创建两个线程,一个线程输出1-200之间的奇数值,当输出到99时,睡眠1s钟,另一个线程输出1-200之间的偶数值.
答案:1 悬赏:50
解决时间 2021-01-08 11:00
- 提问者网友:富士山上尢
- 2021-01-07 12:16
创建两个线程,一个线程输出1-200之间的奇数值,当输出到99时,睡眠1s钟,另一个线程输出1-200之间的偶数值.
最佳答案
- 二级知识专家网友:佘樂
- 2021-01-07 12:27
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Test {
public static void main(String[] args) {
ExecutorService pool = Executors.newFixedThreadPool(2);
final String lock = "lock";
pool.execute(new Runnable() {
@Override
public void run() {
for (int i = 1; i <= 200; i++) {
synchronized (lock) {
if (i % 2 == 1) {
System.out.println(Thread.currentThread().getName() + "打印奇数" + i);
if (i == 99) {
try {
System.out.println(Thread.currentThread().getName() + "进入睡眠");
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
});
pool.execute(new Runnable() {
@Override
public void run() {
for (int i = 1; i <= 200; i++) {
synchronized (lock) {
if (i % 2 == 0) {
System.out.println(Thread.currentThread().getName() + "打印偶数" + i);
}
}
}
}
});
pool.shutdown();
}
}
import java.util.concurrent.Executors;
public class Test {
public static void main(String[] args) {
ExecutorService pool = Executors.newFixedThreadPool(2);
final String lock = "lock";
pool.execute(new Runnable() {
@Override
public void run() {
for (int i = 1; i <= 200; i++) {
synchronized (lock) {
if (i % 2 == 1) {
System.out.println(Thread.currentThread().getName() + "打印奇数" + i);
if (i == 99) {
try {
System.out.println(Thread.currentThread().getName() + "进入睡眠");
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
});
pool.execute(new Runnable() {
@Override
public void run() {
for (int i = 1; i <= 200; i++) {
synchronized (lock) {
if (i % 2 == 0) {
System.out.println(Thread.currentThread().getName() + "打印偶数" + i);
}
}
}
}
});
pool.shutdown();
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯