
上java代码
import javautilHashMap;
import javautilMap;
public class Test2 {
Map<String, String> map = new HashMap<String, String>();
public Map<String, String> getMap() {
return map;
}
public Test2() {
mapput("A", "START");
mapput("B", "START");
mapput("C", "START");
}
public static void main(String args[]) {
Test2 a = new Test2();
aexec();
Systemoutprintln("三个线程启动");
while (true) {
Map<String, String> map = agetMap();
if ("END"equals(mapget("A")) && "END"equals(mapget("B"))
&& "END"equals(mapget("C"))) {
break;
}
}
Systemoutprintln("三个线程运行结束");
}
public void exec() {
try {
threadStart();
} catch (Exception e) {
}
}
public void threadStart() throws Exception {
Thread t1 = new Thread(new Runnable() {
public void run() {
disp("线程一");
mapput("A", "END");
}
});
t1start();
Thread t2 = new Thread(new Runnable() {
public void run() {
disp("线程二");
mapput("B", "END");
}
});
t2start();
Thread t3 = new Thread(new Runnable() {
public void run() {
disp("线程三");
mapput("C", "END");
}
});
t3start();
}
public void disp(String tName) {
for (int i = 0; i < 10000; i++) {
if (i % 3 == 0)
Systemoutprintln(tName + "---A");
if (i % 3 == 1)
Systemoutprintln(tName + "---B");
if (i % 3 == 2)
Systemoutprintln(tName + "---C");
}
}
}
解释,map为三个线程公用缓存,当三个线程并行各自结束的时候,将结束标志写入map中。
主程序进行无限循环,判断缓存中三个线程是否执行完毕,(注:无限循环中应加入Threadsleep函数),当map中所有标志位置为结束,主程序随之结束。
以上就是关于编写一个控制台应用程序启动3个线程分别在屏幕输出字母A B C 每个字母输出1万次3个线程全部执行完毕退出全部的内容,包括:编写一个控制台应用程序启动3个线程分别在屏幕输出字母A B C 每个字母输出1万次3个线程全部执行完毕退出、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)