Ivan's articles
![Java’s Synchronized Keyword in Three Minutes](https://uploads.sitepoint.com/wp-content/uploads/2017/02/1486995714synchronized-300x184.jpg)
Java’s Synchronized Keyword in Three Minutes
The synchronized keyword is a common building block in concurrent Java applications. Learn how to use it to avoid race conditions.
![The Dangers of Race Conditions in Five Minutes](https://uploads.sitepoint.com/wp-content/uploads/2017/02/1486567898race-condition-300x159.jpg)
The Dangers of Race Conditions in Five Minutes
A race condition occurs when multiple threads mutate shared state such that the outcome depends on how exactly the threads' operations interleave.
![Beyond POJOs – Ten More Ways to Reduce Boilerplate with Lombok](https://uploads.sitepoint.com/wp-content/uploads/2017/01/1483509837six-more-lombok-features-300x200.jpg)
Beyond POJOs – Ten More Ways to Reduce Boilerplate with Lombok
How to use Lombok to reduce Java boilerplate in logging, null checks, variable definitions, concurrent code, exception handling, laziness, and more.
![Java’s Thread Class in Five Minutes](https://uploads.sitepoint.com/wp-content/uploads/2017/02/1486240716java-threads-300x170.jpg)
Java’s Thread Class in Five Minutes
Threads are Java's basic abstraction for running code in parallel. Learn how to use the Thread class to launch, finish, and wait for threads.
![Declutter Your POJOs with Lombok](https://uploads.sitepoint.com/wp-content/uploads/2016/12/1482430611lombok-tutorial-300x200.jpg)
Declutter Your POJOs with Lombok
Lombok is a library that helps to reduce Java's verbosity. This tutorial presents how to use it to write clearer POJO classes.