package com.exer.java; public class PrintNumber { public static void main(String[] args) { Print printnumber = new Print(); Thread printOdd = new Thread(printnumber); Thread printEven = new Thread(printnumber); printEven.setName("打印偶数"); printOdd.setName("打印奇数"); printOdd.start(); printEven.start(); } } class Print implements Runnable { private int i; @Override public void run() { getPrint(); } public synchronized void getPrint() { for (i = 0; i < 100; ) { System.out.println(Thread.currentThread().getName() + ":" + i); i++; notify(); try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } }
必须在Print类里面定义一个变量控制线程的运行,通过if语句判断奇偶性来调用wait或notify,你这个程序应该出现死锁了。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632