首页 > 编程语言 >【Java】线程Thread类常用方法

【Java】线程Thread类常用方法

时间:2022-10-12 14:59:15浏览次数:35  
标签:Java name Thread void final 线程 public

1.Thread类中常用方法

Thread类常用方法 描述
start() 启动当前线程,调用当前线程的run()方法。
run() 通常需要重写该方法,将线程要执行的操作写在此方法中。
currentThread() 静态方法,返回执行当前代码的线程。
getName() 获取当前线程的名字。
setName() 设置当前线程的名字。
yield() 释放当前CPU的执行权。
join() 在线程a中调用线程b的join(),此时线程a就进入了阻塞状态,直到线程b完全执行完以后,线程a才结束阻塞状态。
stop() 此方法已过时,用于强制结束当前线程。
sleep(long millitime) 使当前线程阻塞millitime毫秒。1秒 = 1000毫秒
isAlive() 判断当前线程是否存活。
Thread类常用方法
```java
public class Test {

    private int  priority;   //线程优先级,提供getPriority()/set方法
    
    public final static int MIN_PRIORITY = 1;   //最低

    public final static int NORM_PRIORITY = 5;   //默认优先级

    public final static int MAX_PRIORITY = 10;  //最高

    public synchronized void start() {
        if (threadStatus != 0)
            throw new IllegalThreadStateException();
        group.add(this);

        boolean started = false;
        try {
            start0();
            started = true;
        } finally {
            try {
                if (!started) {
                    group.threadStartFailed(this);
                }
            } catch (Throwable ignore) {
            }
        }
    }

    @Override
    public void run() {
        if (target != null) {
            target.run();
        }
    }

    public static native Thread currentThread();

    public final String getName() {
        return name;
    }

    public final synchronized void setName(String name) {
        checkAccess();
        if (name == null) {
            throw new NullPointerException("name cannot be null");
        }

        this.name = name;
        if (threadStatus != 0) {
            setNativeName(name);
        }
    }

    public static native void yield();

    public final void join() throws InterruptedException {
        join(0);
    }

    @Deprecated
    public final void stop() {
        SecurityManager security = System.getSecurityManager();
        if (security != null) {
            checkAccess();
            if (this != Thread.currentThread()) {
                security.checkPermission(SecurityConstants.STOP_THREAD_PERMISSION);
            }
        }
        if (threadStatus != 0) {
            resume(); // Wake up thread if it was suspended; no-op otherwise
        }
        stop0(new ThreadDeath());
    }

    public static native void sleep(long millis) throws InterruptedException;

    public final native boolean isAlive();
}
</details>

## 2.用户线程和守护线程
用户线程:运行在前台,main线程。
守护线程:运行在后台,为前台线程提供服务,如垃圾回收。

参考:[Java用户线程和守护线程](https://www.cnblogs.com/myseries/p/12078413.html "Java用户线程和守护线程")

标签:Java,name,Thread,void,final,线程,public
From: https://www.cnblogs.com/zhishu/p/16784500.html

相关文章

  • Java:锁定 Excel 中的特定单元格
    Excel文档在日常工作中应用广泛,常用于整理数据,收集信息等。在操作Excel文档时,有时我们会遇到需要锁定某一单元格的情况,例如,当我们通过共享的Excel文档收集整理某种信息时,锁......
  • redis基础系列~单线程与多线程
    纯内存KV操作redis的操作都是在内存实现的,众所周知,在计算机的世界中,CPU的速度是远大于内存的速度的,同时内存的速度也是远大于硬盘的速度,所以非常快.所以内存的大小......
  • 使用java代码连接oracle
    Connectionconn=null;try{Class.forName("oracle.jdbc.OracleDriver");//数据库IPStringip="oracle数据库IP地址或者是localhost";//数据库......
  • java字符串&字符串的使用&格式化字符串&正则&字符串生成器
    publicclassCompound{publicstaticvoidmain(Stringargs[]){Stringa="good";System.out.println(a);charb[]={'h','e','l','l',......
  • java流程控制
    publicclassCompound{publicstaticvoidmain(Stringargs[]){intx=10;intj=40;{inty=40;System.out.p......
  • 第一个java程序
    publicclassHelloJava{publicstaticvoidmain(String[]args){System.out.println("123123adasd");}}......
  • Java 序列化
    importjava.io.*;/***Java序列化*Java提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存......
  • java基本数据类型
    packageNumber;publicclassFrist{staticStrings1="你好";staticfinaldoublePI=3.14;//intm=123;publicstaticvoidmain(String[]......
  • Java Iterator(迭代器)
    importjava.util.ArrayList;importjava.util.Iterator;/***JavaIterator(迭代器)*JavaIterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代ArrayList......
  • Java HashMap
    importjava.util.HashMap;/***JavaHashMap*HashMap是一个散列表,它存储的内容是键值对(key-value)映射。**HashMap实现了Map接口,根据键的HashCode值存储数据,......