获赞
228
粉丝
43
关注
23
看过 TA
2921
武汉大学
2026
C++
IP属地:上海
暂未填写个人简介
私信
关注
已注销:游戏测试是掌控版本日大家下班时间大权的
投递网易游戏等公司8个岗位
0 点赞 评论 收藏
分享
投递携程等公司8个岗位
0 点赞 评论 收藏
分享
问问大佬们 (1)class ZeroEvenOdd {private int n;ReentrantLock lock = new ReentrantLock(true);private int x = 1;private boolean isZero = true;private Condition condition = lock.newCondition();public ZeroEvenOdd(int n) {this.n = n;}// printNumber.accept(x) outputs "x", where x is an integer.public void zero(IntConsumer printNumber) throws InterruptedException {while(x <= n){lock.lock();if(isZero&&x <= n){printNumber.accept(0);isZero = false;condition.signalAll();}else{condition.await();}lock.unlock();}}public void even(IntConsumer printNumber) throws InterruptedException {while(x <= n){lock.lock();if(!isZero && x%2 == 0){printNumber.accept(x);x++;isZero = true;condition.signalAll();}else{condition.await();}lock.unlock();}}public void odd(IntConsumer printNumber) throws InterruptedException {while(x <= n){lock.lock();if(!isZero && x%2 == 1){printNumber.accept(x);x++;isZero = true;condition.signalAll();}else{condition.await();}lock.unlock();}}}(2)class ZeroEvenOdd {private final int n;private int x = 1;// true: 打印0  false: 不打印0private boolean isZero = true;public ZeroEvenOdd(int n) {this.n = n;}public void zero(IntConsumer printNumber) throws InterruptedException {while (x <= n) {synchronized (this) {if (isZero) {printNumber.accept(0);isZero = false;this.notifyAll();} else {this.wait();}}}}public void even(IntConsumer printNumber) throws InterruptedException {while (x <= n) {synchronized (this) {if (x % 2 == 0 && !isZero) {printNumber.accept(x);isZero = true;x++;this.notifyAll();} else {this.wait();}}}}public void odd(IntConsumer printNumber) throws InterruptedException {while (x <= n) {synchronized (this) {if (x % 2 != 0 && !isZero) {printNumber.accept(x);isZero = true;x++;this.notifyAll();} else {this.wait();}}}}}为什么(1)代码最后可能多输出一个0。(2)代码不会
Java求职圈
0 点赞 评论 收藏
分享
野猪不是猪🐗:有句话说的很好:黑马redis这东西,你不学不行。但是你要是真把点评写简历上,人家还嫌弃你
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务