一、引言
Thread类中存在着许多操作线程的方法,学习Thread类是非常有必要的,前面我们也嘘唏了创建线程的几种方式,若线程的创建不是以继承Thread类的方式创建的,那我们又改如何使用Thread中的方法呢?下面一起来学习一下多线程操作的重点--Thread类。
二、实例详解
/** * 认识Thread类的常用方法 */ public class MyThread { public static void main(final String[] arguments) throws InterruptedException { /*一个以实现Runnable接口的方式创建的线程,如何使用Thread类中的方法?*/ //1、创建一个线程实例(此线程是以实现Runnable接口的方式创建的) TestThread runableThread = new TestThread(); //2、通过Thread类的构造函数,用刚才创建的线程生成一个Thread类的实例 Thread thread = new Thread(runableThread); /*Thread类中重要的操作线程方法*/ thread.setName("线程1");//设置线程名称 thread.setPriority(1);//设置线程优先级(1~10;默认为5;10为最高优先级;优先级高并不一定就先执行!) thread.setDaemon(false);//设置该线程是否为守护线程(true:是;false:不是) thread.start();//启动线程 thread.isAlive();//查看当前线程是否存活 thread.join(3000L);//等待该线程执行X秒后再执行下面的代码(PS:若设值大于线程执行时间,则执行完毕后立即执行下面的线程) thread.interrupt();//终止线程(PS:若线程中存在sleep方法,且线程还没运行完毕,调用interrupt时会报错) /*Thread类中的静态方法*/ thread.sleep(1000L);//线程休眠1秒(当前线程回到可执行状态,并不一定能立即执行!) thread.yield();//暂停执行当前线程,并执行其他线程(当前线程回到可执行状态) thread.currentThread();//返回当前线程的实例对象 } /** * 线程实体(实现Runnable接口) */ static class TestThread implements Runnable { public void run() { try { System.out.println("运行线程!线程名称为: " + Thread.currentThread().getName() + ",执行开始时间:" + new Date()); TimeUnit.SECONDS.sleep(5L);//休眠 System.out.println("运行线程完毕!线程名称为: " + Thread.currentThread().getName() + ",执行结束时间:" + new Date()); } catch (InterruptedException e) { e.printStackTrace(); } } } }