求解,多線程時,線程池中一個線程內部代碼拋出異常,那么這個線程能正常結束么?


首先建立線程池

ExecutorService pool = Executors.newFixedThreadPool(1000);
pool.submit(new HandlerSocket(client));

然后,實現多線程,

當一個線程出現異常時:如下

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這個線程池中的線程被正常支行了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM