目录
15.3.1线程的名字
15.3.2得到当前线程
1.Thread类的静态方法
2.使用Thread.currentThread()方法
15.3.3让线程沉睡
1.thread类的静态方法sleep()
sleep()方法是个静态方法
15.3.1线程的名字
学习一下Thread类的name属性,它的类型String。在Thread中String getname()和void setName(String)两个方法用来设置和获取这个属性的值。
Thread(String name):接受一个Runnable实例和一个String实例为参数Thread类构造方法。其中Runnable中的run()方法就是线程将要执行的方法,String实例就是这个线程的名字。
Thread (Runnable target,String name):接受一个Runnable实例和一个String实例为参数的Thread类构造法。其中Runnable中的run()方法就是线程将要执行的方法,String实例就是这个线程的名字。
package com.javaeasy.threadname;
public class ShowThreadname extends Thread {
public ShowThreadname() {
super();
}
public ShowThreadname (String name) {
super(name);
}
public void run() {
System.out.println("这个线程的名字是"+this.getName());
}
}
package com.javaeasy.threadname;
public class ShowThreadNameMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
ShowThreadname defaultName =new ShowThreadname();
ShowThreadname name =new ShowThreadname("线程的名字");
defaultName.start();
name.start();
}
}
Thread可以通过setName和getName来设置/得到线程的名字
15.3.2得到当前线程
1.Thread类的静态方法
线程是执行java的基本单位,也就是java最终都是线程来执行的。
2.使用Thread.currentThread()方法
package com.javaeasy.currentthread;
public class PrintCurrentThreadName {
public void PrintCurrentThreadName() {
Thread currentThread =Thread.currentThread();
String threadName =currentThread.getName();
System.out.print("执行代码的线程名叫做"+threadName);
}
}
15.3.3让线程沉睡
设计一个小程秀,程序的功能是给用户提供加法运算测试,程序首先生成两个0-100的整数,将这两个整数输出到控制台上,而后程序会给用户提供5秒钟的思考时间,最后输出结果,供用户比较。
1.thread类的静态方法sleep()
sleep()方法是一个静态方法,没有返回值,接受一个long类型的参数。这个参数的意义就是线程需要沉睡的毫秒数
package com.javaeasy.threadsleep;
public class TestAddingInMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=(int )(100*Math.random());//随机生成0-100的数
int b=(int )(100*Math.random());//随机生成0-100的数
System.out.println("请在5秒钟内计算下列两个整数的和"+a+"+"+b);
try {
Thread.sleep(5000);
}catch(InterruptedException e) { //异常检测
System.out.println("对不起,程序运行出错,错误信息为:"+e.getMessage());
return;
}
int result=a+b;
System.out.println(a+"+"+b+"运算结果为:"+result);
}
}
sleep()方法是个静态方法
在上述例程中,Thread直接调用sleep方法。也就是说thread.sleep()方法会让Thread.currentThread()这个线程挂起指定的时间。
package com.javaeasy.threadsleep;
public class TestAddingInMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=(int )(100*Math.random());//随机生成0-100的数
int b=(int )(100*Math.random());//随机生成0-100的数
System.out.println("请在5秒钟内计算下列两个整数的和"+a+"+"+b);
String currThreadName =Thread.currentThread().getName();
System.out.println("执行的代码的线程叫做"+currThreadName);
try {
Thread.sleep(5000);
}catch(InterruptedException e) { //异常检测
System.out.println("对不起,程序运行出错,错误信息为:"+e.getMessage());
return;
}
int result=a+b;
System.out.println(a+"+"+b+"运算结果为:"+result);
}
}