zoukankan      html  css  js  c++  java
  • JavaSE:与线程的编号和名称有关的方法

    1.相关的方法

    long getId() 获取调用对象所表示线程的编号
    String getName() 获取调用对象所表示的线程的名称
    void setName(String name) 设置/修改线程的名称为参数指定的数值
    static Thread currentThread() 获取当前正在执行线程的引用

    2.案例题目

      自定义类,继承Thread类,并重写run方法。

      在run方法中,先打印当前线程的编号和名称,然后将线程的名称修改为"zhangfei"后,

      再次打印编号和名称。

      要求在main方法中,也打印主线程的编号和名称。

    代码一

     1 package com.lagou.task18;
     2 
     3 public class ThreadIdNameTest extends Thread {
     4 
     5     public ThreadIdNameTest(String name) {
     6         super(name); // 表示调用父类的构造方法
     7     }
     8 
     9     @Override
    10     public void run() {
    11         System.out.println("子线程的编号是:" + getId() + ",名称是:" + getName()); // 14  Thread-0 guanyu
    12         // 修改名称为"zhangfei"
    13         setName("zhangfei");
    14         System.out.println("修改后子线程的编号是:" + getId() + ",名称是:" + getName()); // 14  zhangfei
    15     }
    16 
    17     public static void main(String[] args) {
    18 
    19         ThreadIdNameTest tint = new ThreadIdNameTest("guanyu");
    20         tint.start();
    21 
    22         // 获取当前正在执行线程的引用,当前正在执行的线程是主线程,也就是获取主线程的引用
    23         Thread t1 = Thread.currentThread();
    24         System.out.println("主线程的编号是:" + t1.getId() + ", 名称是:" + t1.getName());
    25     }
    26 }

    代码二

     1 public class RunnableIdNameTest implements Runnable {
     2     @Override
     3     public void run() {
     4         // 获取当前正在执行线程的引用,也就是子线程的引用
     5         Thread t1 = Thread.currentThread();
     6         System.out.println("子线程的编号是:" + t1.getId() + ", 名称是:" + t1.getName()); // 14 guanyu
     7         t1.setName("zhangfei");
     8         System.out.println("修改后子线程的编号是:" + t1.getId() + ", 名称是:" + t1.getName()); // 14 zhangfei
     9     }
    10 
    11     public static void main(String[] args) {
    12 
    13         RunnableIdNameTest rint = new RunnableIdNameTest();
    14         //Thread t2 = new Thread(rint);
    15         Thread t2 = new Thread(rint, "guanyu");
    16         t2.start();
    17 
    18         // 获取当前正在执行线程的引用,当前正在执行的线程是主线程,也就是获取主线程的引用
    19         Thread t1 = Thread.currentThread();
    20         System.out.println("主线程的编号是:" + t1.getId() + ", 名称是:" + t1.getName());
    21     }
    22 }

     3. 运行效果

     代码一

     

     

     

     代码二

     

     

  • 相关阅读:
    [已解决]import pymssql ImportError: libsybdb.so.5
    找出生成json中的error_code,并加以处理
    [转]正则匹配时对象必须为string or bytes-like object
    [转]python执行bash指令,如果指令返回错误,如何优雅的结束python程序
    group()与groups()的区别
    Unsupported major.minor version 51.0解决办法(转)
    谈谈互联网后端基础设施(转)
    java日志体系的思考(转)
    JAVA模块以及未来(转)
    使用Spring Loader或者Jrebel实现java 热部署
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/14889919.html
Copyright © 2011-2022 走看看