多线程之 Thread类
一.多线程第一种方式的实现步骤(继承Thread类)
代码演示:
1.定义MyThread类,继承Thread类
2.重写了里面的run方法,在run方法中定义线程要执行的任务
public class MyThread extends Thread{ @Override public void run() { //run方法内是子线程要执行的代码 for(int i = 1; i <= 100; i++) { System.out.println("HelloJava:" + i); } } }
3.创建Thread子类对象
4.调用子类对象的start方法,启动线程
public class Demo01Thread { public static void main(String[] args) { System.out.println("main...start"); //创建Thread子类对象 MyThread mt = new MyThread(); //调用start方法启动线程 mt.start(); System.out.println("main....end"); } }
上面两块代码,会开启子线程,并运行子线程中的run方法
二.Thread中的常见方法:
构造方法:
public Thread(String name): 传递一个线程的名字
成员方法:
void setName(String name): 给线程设置名字
String getName(): 获取线程的名字
(重要) static Thread currentThread(): 获取当前正在运行的线程
(重要) static void sleep(long mills): 线程休眠,参数为休眠的时间,单位是毫秒
代码演示部分Thread方法:
1.创建MyThreadMethod类继承Thread类,并重写内部run方法
public class MyThreadMethod extends Thread{ public MyThreadMethod() {} public MyThreadMethod(String name) { super(name); //调用父类一个参数是字符串的构造方法,将线程名字进行传递。 } //在run方法中定义线程要执行的任务 @Override public void run() { //setName("旺财"); System.out.println("新线程执行了"); //MyThreadMethod 是Thread的子类,所以在这个方法中能够直接调用getName获取线程的名字。 System.out.println("新线程的名字是:" + getName()); } }
2.演示方法currentThread方法和getName方法
public class Demo02ThreadMethod { public static void main(String[] args) { //创建Thread子类对象,并且运行这个线程 MyThreadMethod mtm = new MyThreadMethod("如花"); //mtm.setName("狗蛋"); mtm.start(); //获取main线程的名字 //获取当前正在运行的线程对象,再通过这个线程对象调用getName方法,获取线程名字 //这个currentThread方法是由哪个线程执行的,那么获取到的就是哪个线程对象。 Thread t = Thread.currentThread(); System.out.println("main线程的名字是:" + t.getName()); } }
上面代码运行结果是:
新线程执行了
新线程的名字是:如花
main线程的名字是:main
posted on 2018-09-04 08:13 shaoshuai888 阅读(135) 评论(0) 编辑 收藏 举报