欢迎光临
我们一直在努力

计算机开启两个线程A、B,打印1到10,线程A打印奇数(1、3、5、7、9),线程B打印偶数(2、4、6、8、10)。-笔试面试资料

本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

这是qklbishe.com第5996 篇笔试面试资料
提供答案分析,通过本文《开启两个线程A、B,打印1到10,线程A打印奇数(1、3、5、7、9),线程B打印偶数(2、4、6、8、10)。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

开启两个线程A、B,打印1到10,线程A打印奇数(1、3、5、7、9),线程B打印偶数(2、4、6、8、10)。
开启两个线程A、B,打印1到10,线程A打印奇数(1、3、5、7、9),线程B打印偶数(2、4、6、8、10)。-笔试面试资料 dxzmpk
package com.company.multi_thread.PrintOddEvenWN;  class TaskEvenOdd implements Runnable {     private int max;     private Printer print;     private boolean isEvenNumber;      public TaskEvenOdd(Printer print, int max, boolean isEvenNumber) {         this.max = max;         this.print = print;         this.isEvenNumber = isEvenNumber;     }      // standard constructors      @Override     public void run() {         int number = isEvenNumber ? 2 : 1;         while (number <= max) {             if (isEvenNumber) {                 print.printEven(number);             } else {                 print.printOdd(number);             }             number += 2;         }     }      static class Printer {         private volatile boolean isOdd;          synchronized void printEven(int number) {             while (!isOdd) {                 try {                     wait();                 } catch (InterruptedException e) {                     Thread.currentThread().interrupt();                 }             }             System.out.println(Thread.currentThread().getName() + ":" + number);             isOdd = false;             notify();         }          synchronized void printOdd(int number) {             while (isOdd) {                 try {                     wait();                 } catch (InterruptedException e) {                     Thread.currentThread().interrupt();                 }             }             System.out.println(Thread.currentThread().getName() + ":" + number);             isOdd = true;             notify();         }     }      public static void main(String... args) {         Printer print = new Printer();         Thread t1 = new Thread(new TaskEvenOdd(print, 10, false),"Odd");         Thread t2 = new Thread(new TaskEvenOdd(print, 10, true),"Even");         t1.start();         t2.start();     } }  
2021-01-15 23:04:00 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

赞(0)
未经允许不得转载: 京大飞辅助网程序员面试-区块链javago面经 » 计算机开启两个线程A、B,打印1到10,线程A打印奇数(1、3、5、7、9),线程B打印偶数(2、4、6、8、10)。-笔试面试资料

相关推荐

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址