• 技术文章 >java >java基础

    java守护线程如何理解

    小妮浅浅小妮浅浅2021-11-30 20:24:43原创14484

    1、当其他非守护线程完成时,守护线程将自行结束。

    2、任何线程都可以成为守护线程。通过调用Thread.setdaemon()来声明一个线程是一个守护线程。线程的共性是只有在非守护线程还在工作时才有意义。

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    /**

     * Creates ten threads to search for the maximum value of a large matrix.

     * Each thread searches one portion of the matrix.

     */

    public class TenThreads {

      

        private static class WorkerThread extends Thread {

            int max = Integer.MIN_VALUE;

            int[] ourArray;

      

            public WorkerThread(int[] ourArray) {

                this.ourArray = ourArray;

            }

      

            // Find the maximum value in our particular piece of the array

            public void run() {

                for (int i = 0; i < ourArray.length; i++)

                    max = Math.max(max, ourArray[i]);

            }

      

            public int getMax() {

                return max;

            }

        }

      

        public static void main(String[] args) {

            WorkerThread[] threads = new WorkerThread[10];

            int[][] bigMatrix = getBigHairyMatrix();

            int max = Integer.MIN_VALUE;

      

            // Give each thread a slice of the matrix to work with

            for (int i=0; i < 10; i++) {

                threads[i] = new WorkerThread(bigMatrix[i]);

                threads[i].start();

            }

      

            // Wait for each thread to finish

            try {

                for (int i=0; i < 10; i++) {

                    threads[i].join();

                    max = Math.max(max, threads[i].getMax());

                }

            }

            catch (InterruptedException e) {

                // fall through

            }

      

            System.out.println("Maximum value was " + max);

        }

    }

    以上就是java守护线程的理解,希望对大家有所帮助。更多Java学习指路:Java基础

    推荐操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java 守护线程
    上一篇:java线程的三种结束方式 下一篇:java中TimerTask是什么

    相关文章推荐

    • java中public修饰符是什么• java非访问控制修饰符有哪些• java中static修饰符的使用• java程序计数器的使用注意• java定义带范型的接口• java类型推断如何理解• java类型擦除的应用• java反射的使用过程• java初始化变量的注意点• java委托事件模型的使用• java事件处理机制的组件• java中PrintStream创建对象• java处理字符的函数• java线程的三种结束方式

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网