美文网首页
多线程基础算法:让10个线程按顺序打印出0123456789

多线程基础算法:让10个线程按顺序打印出0123456789

作者: 若素Smile | 来源:发表于2021-08-04 12:18 被阅读0次

思路:
1.起始变量:0和10(或者9)
2.10个线程,每个线程绑定一个数字
代码实现如下:

class Main {

    //锁
    private static Object lock = new Object();

    static int startNum = 0;
    static int endNum = 10;

    public static void main(String[] args) {

        ThreadPrint[] arr = new ThreadPrint[endNum];
        //不按打印顺序创建线程
        for (int i = arr.length - 1; i >= 0; i--) {
            arr[i] = new ThreadPrint(i);
            arr[i].start();
        }
    }

    private static class ThreadPrint extends Thread {

        private int printNum;   //获取自己需要打印的数字

        ThreadPrint(int printNum) {
            this.printNum = printNum;
        }
        @Override
        public void run() {
            synchronized (lock) {

                while (startNum < endNum) {
                    if (startNum == printNum) {

                        System.out.print(printNum);
                        startNum++;

                        if(startNum == endNum) {
                            System.out.print("\n打印结束");
                        }
                        lock.notifyAll();
                    } else {
                        try {
                            lock.wait();
                        } catch (InterruptedException e) {
                            //线程被打断
                            e.printStackTrace();
                        }
                    }
                }

            }
        }
    }
}

相关文章

  • 多线程基础算法:让10个线程按顺序打印出0123456789

    思路:1.起始变量:0和10(或者9)2.10个线程,每个线程绑定一个数字代码实现如下:

  • 线程按指定顺序执行

    在多线程中线程的执行是CPU随机调度的,无法指定线程的执行顺序,比如我们要让多线程按顺序执行输出 这段代码的输出顺...

  • 并发

    保证多线程的顺序执行 方式1:通过join方法保证多线程的顺序join作用:让主线程等待子线程结束后才能继续运行 ...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • python——多线程

    多线程-threading 子类完成创建多线程 线程的执行顺序也是主线程和各个子线程随机执行,顺序不确定 线程对全...

  • 多线程按顺序输出ABC

  • Java多线程编程核心技术

    多线程基础 概念 进程 线程 线程的调用的随机性:代码的运行结果与代码执行顺序或调用顺序是无关的.CPU以不确定的...

  • 多线程与多进程

    python中一个进程中的多线程是要排队的,就好像一个线程按顺序执行,但是java中多线程是可以并发执行的。 对于...

  • 一、多线程基础

    多线程基础 基本概念 同步、异步 同步 线程B要等待线程A的执行结果之后才能执行。要顺序执行 异步 相对同步来说,...

  • 架构师之路

    手写算法 leetcode 掌握java基础类库 多线程,集合list, map https,tcp,udp mi...

网友评论

      本文标题:多线程基础算法:让10个线程按顺序打印出0123456789

      本文链接:https://www.haomeiwen.com/subject/fdvyvltx.html