Concurrency is both the boon and bane of software development. The promise of enhanced performance through parallel processing comes hand in hand with intricate challenges, such as the notorious deadlock. Deadlocks, those insidious hiccups in the world of multithreaded programming,... Continue Reading →
Discover the power of thread dumps in Android development. Learn what thread dumps are, how to capture them using commands like 'dumpsys thread' and 'jstack,' and uncover the insights they offer. Explore the effectiveness of 'fastThread,' a user-friendly tool that... Continue Reading →
Java threads can be in 6 different states: NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED. When a thread is suspended (i.e., unable to progress further), it will be one of these 3 suspended thread states: BLOCKED, WAITING, TIMED_WAITING. Let's discuss these... Continue Reading →
There are scopes of variable in Java programming language: a. Local variable b. Member variable (aka instance variable) c. Static variable (aka class variable) In this post, let's discuss an interesting type of variable: ThreadLocal and how it differs from... Continue Reading →
In this post, we are going to discuss a non-intrusive approach (i.e., approach that doesn’t add any noticeable overhead to the application) to diagnose CPU spike. Thus, you can use this approach in your production environment to troubleshoot CPU spikes.... Continue Reading →
Java virtual thread is a new feature available from JDK 19. It has potential to improve the application’s availability, throughput and code quality on top of reducing memory consumption. If you are interested in learning more about Java virtual thread,... Continue Reading →
Coming soon!
c1, c2 compiler threads are created by Java virtual machine to optimize your application's performance. Occasionally these threads will tend to consume high CPU. In this post, let’s learn little more about c1, c2 compiler threads and how to address... Continue Reading →
java.lang.ClassLoader#loadClass() API is used by 3rd party libraries, JDBC Drivers, frameworks, application servers to load a java class into the memory. Application developers don’t use this API frequently. However when they use the APIs such as ‘java.lang.Class.forName()’ or ‘org.springframework.util.ClassUtils.forName()’, they... Continue Reading →