zoukankan      html  css  js  c++  java
  • java 两个线程交替打印1-100输出到控制台

    java 两个线程交替打印1-100输出到控制台:
    package com.thread;

    public class TestThread {
    public static void main(String[] args) {
    test();
    }
    static long sum=0l;
    Boolean falg=false;
    public static void test() {
    PrintNum printNum = new PrintNum();
    System.out.println("開始進入th1線程--");
    Thread th1=new Thread(new Runnable() {
    @Override
    public void run() {
    while(true) {
    try {
    printNum.printO();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    // System.out.println("sum:"+sum);
    }}
    });
    th1.start();

    System.out.println("開始進入th2線程--");
    Thread th2=new Thread(new Runnable() {
    @Override
    public void run() {
    while(true) {
    try {
    sum= printNum.printJ();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    if(sum==100) {
    break;
    }
    }
    }});
    th2.start();
    }
    }
    -------------------------------------------------------------------------------------------------------------
    package com.thread;

    public class PrintNum {

    private long num=0l;
    //打印奇数
    public synchronized long printJ() throws InterruptedException {
    //当num 是偶数时 ,线程等待
    while(num % 2==0) {
    try {
    this.wait();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    System.out.println("打印奇数");
    System.out.println(Thread.currentThread().getName()+" :"+ num);
    num++;
    this.notify();
    return num;
    }
    //打印偶数
    public synchronized void printO() throws InterruptedException {
    //当num 是奇数时 ,线程等待
    while(num % 2==1) {
    try {
    this.wait();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    System.out.println("打印偶数");
    System.out.println(Thread.currentThread().getName()+" :"+ num);
    num++;
    this.notify();
    }
    }
  • 相关阅读:
    C++STL——vector
    大数常用计算模板及例题
    在线算法&离线算法
    线段树——hdu1166敌兵布阵
    C++STL——堆栈
    C++STL——优先队列
    C++STL——队列
    图的建立——图的两种存储结构
    Manacher算法——最长回文子串
    HttpClient的几个实现类
  • 原文地址:https://www.cnblogs.com/2016-cxp/p/10934736.html
Copyright © 2011-2022 走看看