Main.java revision 5d1ac920fdaef5d4ec8f66bb734488cd9660b024
15d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao// Copyright 2007 The Android Open Source Project 25d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 35d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao/** 45d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Make sure that a sub-thread can join the main thread. 55d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao */ 65d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaopublic class Main { 75d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao public static void main(String[] args) { 85d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao Thread t; 95d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 105d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao t = new Thread(new JoinMainSub(Thread.currentThread()), "Joiner"); 115d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao System.out.print("Starting thread '" + t.getName() + "'\n"); 125d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao t.start(); 135d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 145d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao try { Thread.sleep(1000); } 155d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao catch (InterruptedException ie) {} 165d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 175d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao System.out.print("JoinMain starter returning\n"); 185d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 195d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao} 205d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 215d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaoclass JoinMainSub implements Runnable { 225d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao private Thread mJoinMe; 235d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 245d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao public JoinMainSub(Thread joinMe) { 255d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao mJoinMe = joinMe; 265d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 275d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 285d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao public void run() { 295d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao System.out.print("@ JoinMainSub running\n"); 305d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao 315d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao try { 325d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao mJoinMe.join(); 335d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao System.out.print("@ JoinMainSub successfully joined main\n"); 345d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } catch (InterruptedException ie) { 355d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao System.out.print("@ JoinMainSub interrupted!\n"); 365d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 375d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao finally { 385d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao System.out.print("@ JoinMainSub bailing\n"); 395d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 405d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao } 415d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao} 42