Thread类构造方法:

1.Thread();

2.Thread(String name);

3.Thread(Runable r);

4.Thread(Runable r, String name);

  1. public class Test {
  2. public static void main(String[] args) {
  3. /*
  4. MyThread thread1 = new MyThread();
  5. MyThread thread2 = new MyThread("MyThread");
  6. thread1.start();
  7. thread2.start();
  8. */
  9. MyRunnable run = new MyRunnable();
  10. Thread thread3 = new Thread(run);
  11. Thread thread4 = new Thread(run, "MyThread");
  12. thread3.start();
  13. thread4.start();
  14. }
  15. }

常用方法:

start();//启动线程

getId();//获得线程ID

getName();//获得线程名字

getPriority();//获得优先权

isAlive();//判断线程是否活动

isDaemon();//判断是否守护线程

getState();//获得线程状态

sleep(long mill);//休眠线程

join();//等待线程结束

yield();//放弃cpu使用权利

interrupt();//中断线程

currentThread();//获得正在执行的线程对象

守护线程:也叫精灵线程,当程序只剩下守护线程的时候就会退出。

守护线程 的作用类似在后台静默执行,比如JVM的垃圾回收机制,这个就是一个守护线程。而非守护线程则不会。

    1. MyRunnable run = new MyRunnable();
    2. Thread thread3 = new Thread(run);
    3. Thread thread4 = new Thread(run, "MyThread");
    4. //设置优先级别
    5. //      thread3.setPriority(1);
    6. //      thread3.setPriority(Thread.MAX_PRIORITY);
    7. //      thread4.setPriority(10);
    8. thread3.setPriority(Thread.NORM_PRIORITY);
    9. thread4.setPriority(Thread.NORM_PRIORITY);
    10. //获得线程的优先级别
    11. System.out.println(thread3.getPriority());
    12. System.out.println(thread4.getPriority());
    13. System.out.println("----------------------");
    14. thread3.start();
    15. thread4.start();
    16. System.out.println("----------------------");
    17. System.out.println("线程3是否活动:"+thread3.isAlive());
    18. System.out.println("线程4是否活动:"+thread4.isAlive());
    19. System.out.println("----------------------");
    20. //      thread3.setDaemon(true);//设置为守护线程,必须在启动之前设置
    21. System.out.println("线程3是否是守护线程:"+thread3.isDaemon());
    22. System.out.println("线程4是否是守护线程:"+thread4.isDaemon());
    23. System.out.println("----------------------");
    24. //获取线程状态
    25. System.out.println("线程3的状态:"+thread3.getState());
    26. System.out.println("线程4的状态:"+thread4.getState());
    27. try {
    28. thread4.join();//等待线程4的结束
    29. } catch (InterruptedException e) {
    30. e.printStackTrace();
    31. }

Thread类常用方法的更多相关文章

  1. java 多线程:Thread类常用方法:setPriority优先级、interrupt中断标记、suspend暂停与唤醒resume(已过时);daemon守护线程

    常用方法: boolean isAlive() 测试此线程是否存活. boolean isDaemon() 测试此线程是否为守护程序线程. static void sleep?(long millis ...

  2. Java基础-进程与线程之Thread类详解

    Java基础-进程与线程之Thread类详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程与线程的区别 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 ...

  3. Java并发基础--Thread类

    一.Thread类的构成 Thread类实现Runnable接口.部分源码如下: 二.Thread类常用方法 1.currentThread()方法 currentThread()方法可以返回代码段正 ...

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

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

  5. 创建多线程的方式&Thread类的常用方法

    创建多线程的第一种方式:继承java.lang.Thread类 注意:1.一个线程只能执行一次start() 2.不能通过Thread实现类对象的 run()去启动一个线程 3.增加加一个线程,需要新 ...

  6. Thread类的常用方法----多线程基础练习

    创建多线程程序的第一种方式----继承Thread类 常用API 构造方法 public Thread() :分配一个新的线程对象. public Thread(String name) :分配一个指 ...

  7. Thread类的常用方法_获取线程名称的方法和设置线程名称的方法

    Thread类的常用方法 获取线程的名称: 1.使用Thread类中的方法getName() String getName() 返回该线程的名称 2.可以先获取到当前正在执行的线程,使用线程中的方法g ...

  8. Thread类的常用方法_获取线程名称的方法和Thread类的常用方法_设置线程名称的方法

    构造方法: public Thread();分配一个新的线程对象 public Thread(String name);分配一个指定名字的新的线程对象 public Thread(Runnable t ...

  9. Thread类的常用方法_sleep和创建多线程程序的第二种方式_实现Runnable接口

    sleep方法是在Thread类中的一个静态方法,当一个线程调用了sleep方法,被调用的那个线程就会暂时的让出指定时间的CPU执行权,在这段时间也不会参与CPU的调度,当时间到了之后,就会重新回到就 ...

随机推荐

  1. UILable添加事件

    原文:http://blog.sina.com.cn/s/blog_9e8867eb0101dk6t.html 先需要声明的是:UILabel或UIImageView的 userInteraction ...

  2. MySQL5.6多实例部署

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://suifu.blog.51cto.com/9167728/1850560 无论是迫 ...

  3. 勘误《iOS网络高级编程:iPhone和iPad的企业应用开发》

    VII页 , 倒数第二行, “其他” 应为 “其它” X页, 源代码有错误,说是有19章,实际一共13章 XI页,勘误表的链接也是错误的  .是该书的<Beginning ASP.NET 4.5 ...

  4. Angularjs在线api文档

    http://docs.ngnice.com/api            文档 http://www.ngnice.com/showcase/#/home/home                  ...

  5. Spring mvc基本原理

    http://blog.csdn.net/xtu_xiaoxin/article/details/8796499 http://www.cnblogs.com/wawlian/archive/2012 ...

  6. jQuery addClass removeClass toggleClass hasClass is(.class)用法

    jQuery addClass removeClass toggleClass hasClass is(.class)用法 <%@ page language="java" ...

  7. Java学习之旅基础知识篇:面向对象之封装、继承及多态

    Java是一种面向对象设计的高级语言,支持继承.封装和多态三大基本特征,首先我们从面向对象两大概念:类和对象(也称为实例)谈起.来看看最基本的类定义语法: /*命名规则: *类名(首字母大写,多个单词 ...

  8. 对angularjs时间过滤格式

    在最近的项目中,我遇到这样的一个小问题,从后台传过来一个时间值,格式如下: "/Date(1484743002000)/" 至于为什么是这种格式,后台的开发说数据库中就是这个存的( ...

  9. Hibernate核心配置文件

    Hibernate.cfg.xml是Hibernate操作数据库的核心配置文件 *********************************************** 作用 01.管理实体类的 ...

  10. setTimeout小总结

    ▓▓▓▓▓▓ 大致介绍 今天看了一篇文章,觉得写得不错,所以学习了一下,这篇博客是我自己的理解和总结 原文:你应该知道的 setTimeout 秘密 主要内容: 1.setTimeout原理 2.se ...