当前位置:首页 > 开发 > 编程语言 > 多线程 > 正文

深入学习Thread类

发表于: 2013-05-25   作者:bijian1013   来源:转载   浏览:
摘要: 一.             线程的名字 下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()和void setName(String)两个方法用来设置和获取这个属性的值。 同时,Thr

一.             线程的名字

下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()void setName(String)两个方法用来设置和获取这个属性的值。

同时,Thread类还提供相应的构造方法,让Thread类的对象在创建的时候就有一个名字。构造方法如下:

a.Thread(String name):接受一个String实例为参数的Thread类的构造方法,这个参数就是这个线程的名字

b.Thread(Runnable target,String name):接受一个Runnable实例和一个String实例为参数的Thread类构造方法。其中Runnable中的run()方法就是线程将要执行的方法;String实例就是这个线程的名字。

如果在创建一个Thread实例的时候没有为Thread实例提供名字,那么Thread实例将使用一个默认的名字。对于在程序中创建的线程,线程的默认名字一般是“Thread-”加上一个递增的整数;而对于主线程,它的名字一般会被设置为main

       实例:

package com.bijian.study;

public class ShowThreadName extends Thread {  //继承自Thread类

    public ShowThreadName() {   //构造方法,没有参数
       super();   //调用父类相应的构造方法
    }

    public ShowThreadName(String name) {   //构造方法,提供线程的名字
       super(name);  //调用父类相应的构造方法
    }

    public void run() {  //覆盖run()方法
       System.out.println("这个线程的名字是:" + this.getName());//输出线程的名字
    }
}

  

package com.bijian.study;
public class ShowThreadNameMain {
    public static void main(String[] args) {

       //使用无参数的构造方法创建Thread类实例,这是它将有一个默认的名字

       ShowThreadName defaultName = new ShowThreadName();

       //使用构造方法给线程指定一个名字

       ShowThreadName name = new ShowThreadName("线程的名字");

       //启动两个线程

       defaultName.start();

       name.start();

    }
}

 

运行结果:

    这个线程的名字是:Thread-0

这个线程的名字是:线程的名字

   

二.             得到当前的线程

Thread类的静态方法currentThread()

Java的线程是执行Java程序的基本单位,也就是说,所有的Java代码最终都是由线程执行的。如果在程序中需要得到“执行当前代码的线程的引用”,那么就可以使用Thread类的静态方法Thread.currentThread()

这个方法的返回值是Thread的引用,这个引用所指向的Thread类的实例正是“指向当前代码的线程”。

 

深入学习Thread类

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
本文通过几个问题入手,主要通过案例讲解Thread类的使用,以及注意事项,最后站在源码的角度分析问
在Android开发中,由于不能再UI线程中做耗时操作,常常需要开启线程来做一些操作。但是这样一来就产
1.关键词:类,对象; javascript 中实际上没有严格的【类和对象】的概念,只是实现了相关效果,为
熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用
前几天,和同事探讨了一下Android中的消息处理机制,探究了消息的发送和接收过程以及与线程之间的关
使用线程技术多半是为了并发处理效果,单核通过CPU调度模拟多任务。 一 基础 实现1 :继承java.lang
一、Exception类封装 class Exception : public std::exception #include <execinfo.h> int b
1. Classloader的作用,概括来说就是将编译后的class装载、加载到机器内存中,为了以后的程序的执行
1. Classloader的作用,概括来说就是将编译后的class装载、加载到机器内存中,为了以后的程序的执行
1. Classloader的作用,概括来说就是将编译后的class装载、加载到机器内存中,为了以后的程序的执行
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号