首先創建線程池java
ExecutorService pool = Executors.newFixedThreadPool(1000); pool.submit(new HandlerSocket(client));
而後,實現多線程,多線程
當一個線程出現異常時:以下ide
pool-1-thread-1 javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:913) at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:824) at com.sun.crypto.provider.DESCipher.engineDoFinal(DESCipher.java:314) at javax.crypto.Cipher.doFinal(Cipher.java:2165) at EncryptOrDecrypt.decryptString(EncryptOrDecrypt.java:173) at HandlerSocket.parseRequestHead(HandlerSocket.java:29) at HandlerSocket.run(HandlerSocket.java:37) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 接入數據... pool-2-thread-1 {"ECOrderId":"456789125","OrderList":[{"PID":"100000","Phones":"18064121114,18150123459"}]}
如上:pool-1-thread-1這個線程異常了,他還能正常結束,等待執行下次線程的分配麼,仍是一直佔着這個線程卡死在那裏?線程
其中pool-2-thread-1這個線程池中的線程被正常支行了blog