【1】setName,getName方法来进行设置读取
package com.msb.test; /** * @author : liu * 日期:11:19:06 * 线程类:TestThread 不是说你的名字中带线程单词你就具备多线程能力了(争抢资源) * 现在想要具备这个能力,继承一个类:Thread,具备了争抢资源的能力 * 版本:1.0 */ public class TestThread extends Thread{ /* 一会儿线程对象就要开始争抢资源了,这个线程要执行的任务到底是啥?这个任务你要放在方法中 但是这个方法不能是随便写的一个方法,必须是重写Thread类中的run方法 然后线程的任务/逻辑写在run方法中 * */ @Override public void run() { //输出1-10 for (int i = 1; i <10 ; i++) { System.out.println(this.getName()+"===="+i); } } }
package com.msb.test; /** * @author : liu * 日期:11:25:16 * 描述:IntelliJ IDEA * 版本:1.0 */ public class Test { //这是一个main方法:是程序的入口 public static void main(String[] args) { //给main方法这个主线程设置名字: //Thread.currentThread()获取当前正在执行的线程 Thread.currentThread().setName("主线程"); for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName()+"1-----"+i); } //开始制造其他线程,要跟主线程争抢资源 //具体的线程对象:子线程 TestThread tt=new TestThread(); tt.setName("子线程"); //tt.run();//调用run方法,想要执行线程中的任务---》这个run方法不能直接调用,直接调用就会被当做一个普通的方法 //想要tt子线程起作用,必须要启动线程 tt.start();//start方法是Thread类中的方法 //主线程也要输出10个数 for (int i = 0; i < 30; i++) { System.out.println(Thread.currentThread().getName()+"2-----"+i); } } }
【2】通过构造器设置名字:
package com.msb.test; /** * @author : liu * 日期:11:19:06 * 线程类:TestThread 不是说你的名字中带线程单词你就具备多线程能力了(争抢资源) * 现在想要具备这个能力,继承一个类:Thread,具备了争抢资源的能力 * 版本:1.0 */ public class TestThread extends Thread{ public TestThread(String name) { //通过set方法设置名字 //this.setName(name); //调用父类的有参构造器 super(name); } /* 一会儿线程对象就要开始争抢资源了,这个线程要执行的任务到底是啥?这个任务你要放在方法中 但是这个方法不能是随便写的一个方法,必须是重写Thread类中的run方法 然后线程的任务/逻辑写在run方法中 * */ @Override public void run() { //输出1-10 for (int i = 1; i <10 ; i++) { System.out.println(this.getName()+"===="+i); } } }
标签:run,读取,Thread,线程,设置,方法,public,TestThread From: https://www.cnblogs.com/jeldp/p/16905407.html