并发基础篇(二):Thread类的API总结

Thread 类是java中的线程类,提供给用户用于创建、操作线程、获取线程的信息的类。是java线程一切的基础,掌握这个类是非常必须的,先来看一下它的API.

1、字段摘要

static int MAX_PRIORITY

线程可以具有的最高优先级

static int MIN_PRIORITY

线程可以具有的最低优先级

static int NORM_PRIORITY

分配给线程的默认优先级

2、构造方法摘要

Thread() :

分配新的 Thread 对象。

Thread(Runnable target)

分配新的 Thread 对象。

Thread(Runnable target, String name)

分配新的 Thread 对象。

Thread(String name)

分配新的 Thread 对象。参数是线程名称

Thread(ThreadGroup group, Runnable target)

分配新的 Thread 对象。

Thread(ThreadGroup group, Runnable target, String name)

分配新的 Thread 对象,以便将 target 作为其运行对象,将指定的 name 作为其名称,并作为 group 所引用的线程组的一员。

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

分配新的 Thread 对象,以便将 target 作为其运行对象,将指定的 name 作为其名称,作为 group 所引用的线程组的一员,并具有指定的堆栈大小。

Thread(ThreadGroup group, String name)

分配新的 Thread 对象。

注意:   线程组(ThreadGroup )已经算是过时的,被抛弃的了,所以不需要去研究线程组,仅仅知道有这个存在就可以了。按照《java编程思想》的说法,线程组一次不成功的尝试

3、方法摘要

3.1、静态方法

static Thread currentThread()

返回对当前正在执行的线程对象的引用。

static int activeCount()

返回当前线程的线程组中活动线程的数目。

static boolean interrupted()

测试当前线程是否已经中断。

static void sleep(long millis)

在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。

static void sleep(long millis, int nanos)

在指定的毫秒数加指定的纳秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。

static void yield()

暂停当前正在执行的线程对象,并执行其他线程。

static boolean holdsLock(Object obj)

当且仅当当前线程在指定的对象上保持监视器锁时,才返回 true。

static void dumpStack()

将当前线程的堆栈跟踪打印至标准错误流。

static int enumerate(Thread[] tarray)

将当前线程的线程组及其子组中的每一个活动线程复制到指定的数组中。

static Map< Thread,StackTraceElement[]> getAllStackTraces()

返回所有活动线程的堆栈跟踪的一个映射。

static Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler()

返回线程由于未捕获到异常而突然终止时调用的默认处理程序。

static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

设置当线程由于未捕获到异常而突然终止,并且没有为该线程定义其他处理程序时所调用的默认处理程序。

3.2、获取线程的信息

long getId()

返回该线程的唯一标识符。

String getName()

返回该线程的名称。

int getPriority()

返回线程的优先级。

Thread.State getState()

返回该线程的状态。

ThreadGroup getThreadGroup()

返回该线程所属的线程组。

ClassLoader getContextClassLoader()

返回该线程的上下文 ClassLoader。

StackTraceElement[] getStackTrace()

返回一个表示该线程堆栈转储的堆栈跟踪元素数组。

Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()

返回该线程由于未捕获到异常而突然终止时调用的处理程序。

3.3、线程的其他操作

void checkAccess()

判定当前运行的线程是否有权修改该线程。

void interrupt()

中断线程。

boolean isInterrupted()

测试线程是否已经中断。

boolean isAlive()

测试线程是否处于活动状态。

boolean isDaemon()

测试该线程是否为守护线程。即后台线程

void setName(String name)

改变线程名称,使之与参数 name 相同。

void setPriority(int newPriority)

更改线程的优先级。

void setDaemon(boolean on)

将该线程标记为守护线程或用户线程。又叫后台线程(是后台提供一种通用的服务线程)

void setContextClassLoader(ClassLoader cl)

设置该线程的上下文 ClassLoader。

void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

设置该线程由于未捕获到异常而突然终止时调用的处理程序。

void join()

等待该线程终止。

void join(long millis)

等待该线程终止的时间最长为 millis 毫秒。

void join(long millis, int nanos)

等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。

void start()

使该线程开始执行;Java 虚拟机调用该线程的 run 方法。

String toString()

返回该线程的字符串表示形式,包括线程名称、优先级和线程组。

这篇文章主要是对于线程的一些常用的api的总结,可以收藏起来需要的时候回忆或者看看。

原文发布于微信公众号 - 好好学java(SIHAIloveJAVA)

原文发表时间:2018-06-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2070
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2587
来自专栏落花落雨不落叶

canvas画简单电路图

62311
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4928
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5496
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2645
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4738
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6878
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2182
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4035

扫码关注云+社区