废话不多说,直接上代码
打印基数
public class PrintNumberOne implements Runnable { PrintUtil printUtil = PrintUtil.getPrintUtil(); @Override public void run() { for (; printUtil.startNumber < printUtil.number; ) { try { if (printUtil.startNumber % 2 == 1) { Thread.sleep(1000); System.out.println("-------" + Thread.currentThread().getName() + "正在打印基数" + printUtil.startNumber + "------"); printUtil.startNumber++; } } catch (Exception e) { } } System.out.println(Thread.currentThread().getName() + "已将0到" + printUtil.number + "的基数打印完毕"); } }
打印偶数
public class PrintNumberTwo implements Runnable { PrintUtil printUtil = PrintUtil.getPrintUtil(); @Override public void run() { for (; printUtil.startNumber < printUtil.number; ) { try { if (printUtil.startNumber % 2 == 0) { Thread.sleep(1000); System.out.println("*******" + Thread.currentThread().getName() + "正在打印偶数" + printUtil.startNumber + "******"); printUtil.startNumber++; } } catch (Exception e) { } } System.out.println(Thread.currentThread().getName() + "已将0到" + printUtil.number + "的偶数打印完毕"); } }
valite帮助类
public class PrintUtil { static PrintUtil printUtil = new PrintUtil(); public volatile Integer startNumber = 0; public volatile Integer number = 100; private PrintUtil() { } public static PrintUtil getPrintUtil() { return printUtil; } }
运行主类
public class Test { public static void main(String[] args) { try { Thread printTwo = new Thread(new PrintNumberTwo()); printTwo.start(); Thread printOne = new Thread(new PrintNumberOne()); printOne.start(); } catch (Exception e) { } } }
欢迎各位大佬指正