济南模板网站,怎么选择企业建站公司,湖南网站推广哪家专业,潜江58同城使用多线程交替打印1--n#xff0c;a进程打印1,4,7,……(3n1),b进程打印2,7,10,……(3n2),c进程打印3,6,9,……(3n)涉及到多线程的同步#xff0c;阻塞#xff0c;wait,notify代码如下Num.javapublic class Num {private int num 0;public Num(int num) {this.num num;}pu…使用多线程交替打印1--na进程打印1,4,7,……(3n1),b进程打印2,7,10,……(3n2),c进程打印3,6,9,……(3n)涉及到多线程的同步阻塞wait,notify代码如下Num.javapublic class Num {private int num 0;public Num(int num) {this.num num;}public synchronized void printOne() {try {while (num%3!1) {this.wait();}System.out.println(Thread.currentThread().getName() ------- (num));Thread.sleep(1000);this.notifyAll();} catch (Exception e) {e.printStackTrace();}}public synchronized void printTwo() {try {while (num%3!2) {this.wait();}System.out.println(Thread.currentThread().getName() ------- (num));Thread.sleep(1000);this.notifyAll();} catch (Exception e) {e.printStackTrace();}}public synchronized void printThr() {try {while (num%3!0) {this.wait();}System.out.println(Thread.currentThread().getName() ------- (num));Thread.sleep(1000);this.notifyAll();} catch (Exception e) {e.printStackTrace();}}} 三个线程类public class PrintOne implements Runnable {private Num num;public PrintOne(Num num) {this.num num;}Overridepublic void run() {while (true) {num.printOne();}}}public class PrintTwo implements Runnable {private Num num;public PrintTwo(Num num) {this.num num;}Overridepublic void run() {while (true) {num.printTwo();}}}public class PrintThr implements Runnable {private Num num;public PrintThr(Num num) {this.num num;}Overridepublic void run() {while (true) {num.printThr();}}}测试类public class Test {public static void main(String[] args) {Num num new Num(0);Thread pOne new Thread(new PrintOne(num));Thread pTwo new Thread(new PrintTwo(num));Thread pThr new Thread(new PrintThr(num));pOne.setName(3n1);pTwo.setName(3n2);pThr.setName(3n );pOne.start();pTwo.start();pThr.start();}}效果3n -------03n1-------13n2-------23n -------33n1-------43n2-------5…………