java中线程的启动有两种方式:
java中的join方法:
当使用join(long millis)时相当于在主线程中只能等待这么多时间,超过时则继续主线程的函数流程,一直到等到线程苏醒,然后继续线程的运行。
借鉴一个网友的解释:
比如:你准备洗澡,需要准备的步骤,准备好衣服,沐浴的东西及烧水这些事情,由于烧水耗时太长,如果也放在主线程之中,就很浪费资源,所以如果我们另开线程去处理,就会达到很好效果,于是乎在准备好衣服,沐浴的东西之前就去开子线程烧水,烧水的过程中主线程准备好衣服,沐浴的东西,此时就等待水烧好,然后方可痛快的洗澡了!!
- class T extends Thread{
- String name;
- public T(String n){
- name=n;
- }
- public void run() {
- try {
- for (int i = 0; i < 2; i++) {
- System.out.println("-------"+name);
- }
- } catch (Exception e) {}
- }
- }
- class T1 implements Runnable{
- String name;
- public T1(String n){
- name=n;
- }
- @Override
- public void run() {
- try {
- for (int i = 0; i < 2; i++) {
- System.out.println("-------"+name);
- }
- } catch (Exception e) {}
- }
- }
- 启动:
- public class Join_Thread {
- public static void main(String[] args) {
- T j1=new T("J1");
- j1.start();
- Thread t3=new Thread(new T1("T_Runable"));
- t3.start();
- System.out.println("Thred End!!");
- }
- }
java中的join方法:
- public class Join_Thread {
- public static void main(String[] args) {
- T j1=new T("J1");
- j1.start();
- try {
- j1.join();
- } catch (Exception e) {}
- T j2=new T("J2");
- j2.start();
- try {
- j2.join();
- } catch (Exception e) { }
- System.out.println("Join Thred End!!");
- }
- }
- join();//等待该线程终止。
- join(long millis);//等待该线程终止的时间最长为 millis 毫秒。
- join(long millis,int nanos);//等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。
当使用join(long millis)时相当于在主线程中只能等待这么多时间,超过时则继续主线程的函数流程,一直到等到线程苏醒,然后继续线程的运行。
借鉴一个网友的解释:
比如:你准备洗澡,需要准备的步骤,准备好衣服,沐浴的东西及烧水这些事情,由于烧水耗时太长,如果也放在主线程之中,就很浪费资源,所以如果我们另开线程去处理,就会达到很好效果,于是乎在准备好衣服,沐浴的东西之前就去开子线程烧水,烧水的过程中主线程准备好衣服,沐浴的东西,此时就等待水烧好,然后方可痛快的洗澡了!!