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():返回该线程的字符串表示形式,包括线程名称、优先级和线程组。

并发基础(二) Thread类的API总结的更多相关文章

  1. Java并发编程:Thread类的使用

    Java并发编程:Thread类的使用 在前面2篇文章分别讲到了线程和进程的由来.以及如何在Java中怎么创建线程和进程.今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知 ...

  2. 【转】Java并发编程:Thread类的使用

    一.线程的状态 在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于对Thread类中的方法的理解. 线程从创建到最终的消亡,要经历若干个状态.一般来说,线程包括以 ...

  3. 3、Java并发编程:Thread类的使用

    Java并发编程:Thread类的使用 在前面2篇文章分别讲到了线程和进程的由来.以及如何在Java中怎么创建线程和进程.今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知 ...

  4. Java 并发:学习Thread 类

    Java 中 Thread类 的各种操作与线程的生命周期密不可分,了解线程的生命周期有助于对Thread类中的各方法的理解.一般来说,线程从最初的创建到最终的消亡,要经历创建.就绪.运行.阻塞 和 消 ...

  5. 并发编程之 Thread 类过期方法和常用方法

    前言 在 Java 刚诞生时,Thread 类就已经有了很多方法,但这些方法由于一些原因(有一些明显的bug或者设计不合理)有些已经废弃了,但是他们的方法名却是非常的好,真的是浪费.我们在进行并发必编 ...

  6. Java并发编程:Thread类的使用介绍

    在学习Thread类之前,先介绍与线程相关知识:线程的几种状态.上下文切换,然后接着介绍Thread类中的方法的具体使用. 以下是本文的目录大纲: 一.线程的状态 二.上下文切换 三.Thread类中 ...

  7. Java并发编程:Thread类的使用(转载)

    一:线程的状态: 在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解. 线程从创建到最终的消亡,要经历若干个状态.一般来说,线程 ...

  8. 【Java_多线程并发编程】基础篇—Thread类中start()和run()方法的区别

    1. start() 和 run()的区别说明 start()方法: 它会启动一个新线程,并将其添加到线程池中,待其获得CPU资源时会执行run()方法,start()不能被重复调用. run()方法 ...

  9. java 基础二 Graphics类

    一.处理图形 1.画直线 void drawLine (int startx , int starty , int endx , int endy) 参数列表:直线开始的横坐标.纵坐标,直线结束的横坐 ...

随机推荐

  1. Ubuntu忘记root密码的解决方法

    如果是Linux操作系统的话,其实也是很简单 -- 单用户登陆.下面以Ubuntu14.04来简单演示一下具体的操作流程. 1. 开机 2. 此时会有一个选项:Advanced Options for ...

  2. ubuntu git生成ssh key (公钥私钥)配置github或者码云

    Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 设置Git的user name和email: git confi ...

  3. zzuli2228: 神奇的排名

    题目描述 小明最近沉迷上了打codeforces的比赛,和acm不同的是,这种比赛是积分制的,按照做题用时,错误次数以及hack来计分的.在某一场比赛,共有n个人参加比赛,现在给出你所有人的分数,小明 ...

  4. hdu1208 dp

    题意:给了一个 n * n 的方格图,要从图的左上角走到右下角 ,每次只能向右或者向下走,走的格数为当前格子上的数字,问共有多少中走法. 一开始我看到之后觉得这题完全可以用记忆化搜索来做,dfs 一遍 ...

  5. JVM 加载class文件的原理

    PS:类的装载过程是ClassLoader,只有把类 加载 到 JVM后才能运行: PS:两种加载类的方式: 显示:new 隐式:class.forname() PS:动态的执行,用到谁,加载谁:

  6. 重磅来袭,开源Asp.Net MVC网上商城BrnShop正式发布,提供源码下载(转)

    BrnShop网上商城是以Asp.Net mvc3为基础开发的网上商城,源代码完全开源(企业版的源代码目前还没有完全整理完成,一旦整理完成也全部开源). 啥话也不说了,直接上源码:下载源码(由于公司服 ...

  7. MySQL--”自然键”和”代理键”优缺点

    ##=====================================================================================## 在数据库表设计中会纠 ...

  8. 基于windows IIS的C语言CGI WEB服务器环境搭建

    网页编程对我来说特别亲切,因为我就是从html.ASP.PHP一步步接触编程的.自己的编程爱好也是从那里一点一点被满足.不过离开大学之后很久没有碰过WEB了,最近看到嵌入式中的涉及到的web服务器,了 ...

  9. 第一章 spring起步

    点击 网址 http://start.spring.io/ 就可以获得spring-boot的项目结构. 如下: 将项目解压到自己的项目中,然后找到mian函数所在启动类.运行.出现: 表示已经运行了 ...

  10. 从操作系统rm数据文件后,利用句柄与rman恢复的过程。(已验证)

    以下操作代码的流程是配的,但是相应的文件名,啥的   必须改动. 故障现象 数据文件被误删除 具体情况 接到反馈说,数据文件data20120512.dbf被误删除,需要恢复 数据库提示 ERROR ...