packagecom.thread;publicclassTestJoinimplementsRunnable{@Overridepublicvoidrun(){for(int i =0; i <100; i++){System.out.println("线程vip来了");}}publicstaticvoidmain(String[] args)throwsInterruptedException{//启动线程TestJoin testJoin =newTestJoin();Thread thread =newThread(testJoin);
thread.start();//主线程for(int i =0; i <1000; i++){if(i==200){
thread.join();}System.out.println("main"+i);}}}
线程状态观测
Thread.State
api帮助文档
代码示例如下
packagecom.thread;//观察测试线程的状态publicclassTestState{publicstaticvoidmain(String[] args)throwsInterruptedException{Thread thread =newThread(()->{for(int i =0; i <5; i++){try{Thread.sleep(1000);}catch(InterruptedException e){
e.printStackTrace();}}System.out.println("");});//观察状态Thread.State state = thread.getState();System.out.println(state);//新生状态//启动后
thread.start();//启动线程
state=thread.getState();System.out.println(state);//run状态while(state!=Thread.State.TERMINATED){//只要线程不终止,就一直输出状态Thread.sleep(1000);
state=thread.getState();//更新线程状态System.out.println(state);//输出状态}}}