加入线程
join()
方法等待线程死亡。 换句话说,它会导致当前运行的线程停止执行,直到它加入的线程完成其任务。
语法:
public void join()throws InterruptedException
public void join(long milliseconds)throws InterruptedException
join()方法的示例
package com.zyiz; class TestJoinMethod1 extends Thread { public void run() { for (int i = 1; i <= 5; i++) { try { Thread.sleep(500); } catch (Exception e) { System.out.println(e); } System.out.println(i); } } public static void main(String args[]) { TestJoinMethod1 t1 = new TestJoinMethod1(); TestJoinMethod1 t2 = new TestJoinMethod1(); TestJoinMethod1 t3 = new TestJoinMethod1(); t1.start(); try { t1.join(); } catch (Exception e) { System.out.println(e); } t2.start(); t3.start(); } }
执行上面示例代码,得到以下结果:
1 2 3 4 5 1 1 2 2 3 3 4 4 5 5
正如在上面的示例中所看到的,当t1
完成其任务时,t2
和t3
才开始执行。
join(long miliseconds)方法的示例
package com.zyiz; class TestJoinMethod2 extends Thread { public void run() { for (int i = 1; i <= 5; i++) { try { Thread.sleep(500); } catch (Exception e) { System.out.println(e); } System.out.println(i); } } public static void main(String args[]) { TestJoinMethod2 t1 = new TestJoinMethod2(); TestJoinMethod2 t2 = new TestJoinMethod2(); TestJoinMethod2 t3 = new TestJoinMethod2(); t1.start(); try { t1.join(1500); } catch (Exception e) { System.out.println(e); } t2.start(); t3.start(); } }
执行上面示代码,得到以下结果:
1 2 3 1 1 4 2 2 5 3 3 4 4 5 5
在上面的例子中,当t1
完成其任务1500毫秒(3次),然后t2
和t3
开始执行。
getName(),setName(String) 和 getId() 方法示例:
package com.zyiz; class TestJoinMethod3 extends Thread { public void run() { System.out.println("running..."); } public static void main(String args[]) { TestJoinMethod3 t1 = new TestJoinMethod3(); TestJoinMethod3 t2 = new TestJoinMethod3(); System.out.println("Name of t1:" + t1.getName()); System.out.println("Name of t2:" + t2.getName()); System.out.println("id of t1:" + t1.getId()); t1.start(); t2.start(); t1.setName("New ThreadName-1"); System.out.println("After changing name of t1:" + t1.getName()); } }
执行上面示例代码,得到以下结果:
Name of t1:Thread-0 Name of t2:Thread-1 id of t1:10 After changing name of t1:New ThreadName-1 running... running...
currentThread()方法:currentThread()
方法返回对当前正在执行的线程对象的引用。
语法:
public static Thread currentThread()
currentThread()方法的示例
package com.zyiz; class TestJoinMethod4 extends Thread { public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String args[]) { TestJoinMethod4 t1 = new TestJoinMethod4(); TestJoinMethod4 t2 = new TestJoinMethod4(); t1.start(); t2.start(); } }
执行上面示例代码,得到以下结果:
Thread-1 Thread-0
下一篇:命名线程和当前线程
分类导航
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
关注微信小程序
扫描二维码
程序员编程王