zoukankan      html  css  js  c++  java
  • Thread类

    Java 多线程最基本的类就是位于 java.lang 包下的 Thread 类 ,这个类继承 Object 类,实现了 Runnable。

    public class Thread extends Object implements Runnable

    Thread 有优先级的区分,优先级较高的线程优先于优先级较低的线程执行(但不是绝对的)。每一个线程都可以作为一个守护线程。

    创建线程的方式有两种方式:

    class PrimeThread extends Thread {
             long minPrime;
             PrimeThread(long minPrime) {
                 this.minPrime = minPrime;
             }
    
             public void run() {
                 // compute primes larger than minPrime
                  . . .
             }
    }
    
    PrimeThread p = new PrimeThread(143);
    p.start();
    

    或者:

    class PrimeRun implements Runnable {
        long minPrime;
        PrimeRun(long minPrime) {
            this.minPrime = minPrime;
        }
    
        public void run() {
            // compute primes larger than minPrime
             . . .
        }
    }
    
    PrimeRun p = new PrimeRun(143);
    new Thread(p).start();
    

    Thread 类有以下几种构造函数

    Thread()
    Thread(Runnable target)
    Thread(Runnable target, String name)
    Thread(String name)
    Thread(ThreadGroup group, Runnable target)
    Thread(ThreadGroup group, Runnable target, String name)
    Thread(ThreadGroup group, Runnable target, String name, long stackSize)
    Thread(ThreadGroup group, String name)
    

    Thread 可以接收一个 Runnable 的 target 作为参数,这样可以有效的将业务实现和 Thread 类进行解耦。所以推荐使用这种方式进行线程的创建。

    name 参数可以指定该线程的名称,如果不指定 Thread 类将会调用 threadInitNumber 这个成员变量来计数当前线程的名称,第一个就是 thread-0,第二个就是 thread-1,依次类推。

    ThreadGroup 定义了该线程属于哪个 group 中,同一组的线程可以批量停止或者挂起。

    stackSize 是一个很有意思的参数。它是否起作用高度依赖于平台,在某些平台上该参数将不会起作用。简单的理解就是这个参数可以左右栈深度,较小的栈深度,JVM能支持更多的线程;较大的栈深度,单个线程拥有更大的递归深度,但是带来的是较少的线程同时存活。

  • 相关阅读:
    Git代码托管
    Git安装配置
    【知识共享】SSIS的典型应用
    【转贴】正确实施BI项目的四条建议
    SAP ABAP 常用事务代码
    【转贴】WP7 离线升级方法附错误解决方案
    BO Universe(语义层)设计相关
    【转贴】SAP学习经验谈
    七个不放过和四项原则
    SAP BO帮助文档下载页面
  • 原文地址:https://www.cnblogs.com/manastudent/p/12264427.html
Copyright © 2011-2022 走看看