理通过实现Runnable接口来创建线程SHANDONG UNIVERSITYOFTECHNOLOGY实现Runnable接口创建线程publicclassMyTargetimplementsRunnablepublicstaticvoidmain(Stringargs)Thread.currentThread/获取主线程对象ThreadmainThread=out.println("主线程是:'+mainThread);获取主线程对象MyTargetmt=newMyTarget();Threadt1=newThread(mt):ll创建一个子线程对象t1.start0;ll启动子线程创建子线程并启动II重写父类的run(方法publicvoidrunoout.println("子线程是:"+Thread.currentThread();专业专注创新
专业 专注 创新 通过实现Runnable接口来创建线程 public class MyTarget implements Runnable { public static void main(String[] args) { Thread mainThread = Thread.currentThread();// 获取主线程对象 out.println("主线程是:" + mainThread); MyTarget mt = new MyTarget (); Thread t1 = new Thread(mt);// 创建一个子线程对象 t1.start();// 启动子线程 } // 重写父类的run()方法 public void run() { out.println("子线程是:" + Thread.currentThread()); . } } 实现Runnable接口创建线程 创建子线程并启动 获取主线程对象
东理线程的启动SHANDONGUNIVERSITY OFTECHNOLOGY尽管线程实际执行的是runO方法中的代码,但通过start()方法触发的。runo方法只是类的一个普通方法而已,如果直接调用run(方法,程序中依然只有主线程这一个线程。强调:通过start()调用run(方法专业专注创新
专业 专注 创新 线程的启动 尽管线程实际执行的是 run() 方法中的代码,但通过 start() 方法触发的。 run()方法只是类的一个普通方法而已,如果直接调 用run()方法,程序中依然只有主线程这一个线程。 强调:通过start() 调用run()方法
package cn.sdut;public class ThreadTestl 测试线程启动public static void main(string[l args) (ThreadDemol tl=newThreadDemol(wtl");ThreadDemolt2-newThreadDemol("t2")t2i=0t1i-2ThreadDemol t3=newThreadDemol("t3");t2i=1tli=3tl.run();t2i-2i=4t1t2i-3t1i-5t2.run();t2i-4t1i=6t3.run();t3i-oi-7t1//t3i-1tl.start();tli=8t3i-21t1i-9t2.start();t3i=3t2i=o11t3.start();t3i=4i-1t2t3i-51t2i-2t3i-6t2i=31t3i-7t2i-4class ThreadDemol extends Threadt3i-8i=5t24t3i-9i-6t2t2i=5t2i-7private string info;t2i=6i-8t2publicThreadDemol(stringinfo)t2i=7t2i-9t2i-81t3i-0t2i-9t3i-1this.info=info;tli-0t3i=21tli-1i-3t3t1i=2public void run() (t3i-4tli-3i-5t3for(inti=0;i<lo:i++)tli=4t3i=6ftli-5t3i-7tli=6t3i-8System.out.println(info+" i="+i);tli-7t3i=91i-8tl专业专注创新L
专业 专注 创新 测试线程启动
东理创建线程两种方法的比较SHANDONGUNIVERSITYOFTECHNOLOGY通过实现Runnable接口创建线程的方法更常用因为Java不支持多继承,有些类需要继承其他类来完成功能,无法再继承Thread类完成多线程功能,此时必须通过实现一个接口来增加多线程功能。例:Java的GUI程序,主程序类需要从Frame类或Applet类继承Thread类与Runnable接口用Thread继承而来的线程,一个线程序对象只能启动一次,无论调用多少遍staito方法,结果都只有一个线程实现Rumnable接口相对于继承Thread类来说,有如下显著好处:适合多个相干同程序代码的线程去处理同一资源的情况2可以避免由于Java单继承特性带来的局限有利于程序的健壮性,代码能够被多个线程共享
专业 专注 创新 创建线程两种方法的比较 通过实现Runnable接口创建线程的方法更常用 因为Java不支持多继承,有些类需要继承其他类来 完成功能,无法再继承Thread类完成多线程功能, 此时必须通过实现一个接口来增加多线程功能。 例:Java的GUI程序,主程序类需要从Frame类或Applet类继承
东理子线程基本控制方法SHANDONG UNIVERSITY OFTECHNOLOGY方法功能isAliveo判断线程是否还活着,即线程是否还未终止。getPriorityo)获得线程的优先级数值setPriorityl)设置线程的优先级数值Thread.sleepo将当前线程睡眠指定毫秒数调用某线程的该方法,将当前线程与该续程“合并”,即等待该线程结束,再恢joino复当前线程的运行。waito当前线程进入对象的vaitpool。唤醒对象的waitpool中的一个所有等待线程。notify0/notifyAllo专业专注创新
专业 专注 创新 线程基本控制方法