package BasicAndDontKnow; import java.awt.Component; import javax.swing.JButton; /* * æ°å»ºçº¿ç¨çä¸¤ç§æ¹å¼ï¼ç»§æ¿Threadç±»ï¼éårun() * å®ç°Runnableæ¥å£ï¼å®ç°run() * */ public class TheadTest2 extends Thread{ public static void main(String[] args) { //newæ°å»ºç¶æ Thread thread1= new myThread1(); Thread thread2= new myThread2(); Thread thread3=new Thread(new runnable()); //Runnableå°±ç»ªç¶æ //æ¯æ¬¡æ§è¡çæ¯åªä¸ªçº¿ç¨æ¯ä¸ç¡®å®ç thread1.start(); //å¨runæ¹æ³ä¸æåºç°å¯è½éè¦å¤ççå¼å¸¸ Thread.currentThread().setUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable e) { System.out.println("å¼å¸¸ç线ç¨:"+t.getName()); System.out.printf("å¼å¸¸%s:%sn",e.getClass().getName(),e.getMessage()); t.start(); } }); thread2.start(); thread3.start(); /*å¨çº¿ç¨1䏿§è¡Runnableç±» * å¯ä»¥çåºï¼æ§è¡çæ¯myThread1ä¸çrunæ¹æ³ * åå ï¼Threadä¹å®ç°äºRunnableæ¥å£ï¼èrunæ¹æ³ä¹å¨Runnableæ¥å£ä¸å®ç° * æ¥çæºç ï¼Threadç±»ä¸ætargetï¼åæ§è¡targetçrunæ¹æ³ * ã@Override public void run() { if (target != null) { target.run(); } } 使¯ä¾åä¸çmyThread1éåäºrunæ¹æ³ï¼å æ¤æ²¡ææºä¼æ§è¡Threadç±»ä¸çrunæ¹æ³ï¼èæ¯ç´æ¥æ§è¡äºmyThread1ä¸çrunæ¹æ³ * */ /*Thread thread1=new myThread1(new runnable()); thread1.start(); thread1.interrupt(); System.out.println("线ç¨å½åç¶æ:"+thread1.getState());*/ } } class myThread1 extends Thread{ public myThread1(Runnable runnable){ super(runnable); } public myThread1(){ } public void run(){ for(int i=0;i