Ekta Sahu’s Post

🚨 Can a Thread call start() twice in Java? Short answer — No. And we learned this the hard way in production. 😬 😓 The real story We had a payment retry system. When a payment failed, our code called thread.start() again on the same thread to retry. Seemed logical... until we saw IllegalThreadStateException crashing the entire service at midnight. 💀 🔍 Why does this happen? Once a thread finishes, it moves to a TERMINATED state. Java does not allow restarting a dead thread — ever. ❌ Wrong: t.start(); t.start(); → 💥 CRASH ✅ Right: Create a new Thread each time, or use ExecutorService 💡 How we fixed it Replaced raw threads with ExecutorService. Every retry = a new task submitted to the pool. No crashes. No headaches. 🧠 Remember: 🔁 Thread lifecycle → New → Runnable → Running → Terminated 🚫 Once terminated — cannot restart ✅ Always use a new Thread or ExecutorService One line of mistake. One midnight crash. One lesson for life. 🙂 Have you ever hit this bug? Drop a comment 👇 #Java #Multithreading #Threading #JavaDeveloper #BackendDevelopment #CodingTips #SoftwareEngineering

To view or add a comment, sign in

Explore content categories