招聘笔试题java

编写三个线程,存在一个共享变量a. A线程对a做a++, 如果a >= 20 则不再进行a++. B线程对a做 a*=10操作,如果 a >= 100 则不操作。C线程对a做a--操作。如果a<=0 则不操作。a的取值范围是 ?编写代码,验证
全部评论
0--200
点赞 回复 分享
发布于 2017-07-25 22:48
跪求java 代码实现
点赞 回复 分享
发布于 2017-07-25 23:05
package main.java.multithreads; public class ThreeThreads { public static int a = 0; public static void main(String[] args) { // thread A new Thread(new Runnable() { @Override public void run() { while (a < 20) { a ++; } } }).start(); // thread B new Thread(new Runnable() { @Override public void run() { while (a < 100) { a *= 10; } } }).start(); // thread C new Thread(new Runnable() { @Override public void run() { while (a > 0) { a --; } } }).start(); System.out.println(a); } } 0-200或死循环 理论上来说System.out.println(a);可以在任何时候输出, 虽然实际运行起来0 或200 或死循环的情况比较多.
点赞 回复 分享
发布于 2017-07-26 09:05
共享变量a的初值没有告诉啊?设初值为n  范围是0到max(n,20)*10
点赞 回复 分享
发布于 2017-07-26 09:27

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务