Java.Multithreading.What is the difference between synchronized and ReentrantLock?

Both synchronized and ReentrantLock are used for mutual exclusion in Java (i.e., only one thread can execute a critical section at a time), but they have key differences in capabilities, flexibility, and usage style.

Continue reading →
Posted in Без рубрики | Comments Off on Java.Multithreading.What is the difference between synchronized and ReentrantLock?

Java.Multithreading.When should i call threadLocal.remove()

🧹🧵 When Should You Call threadLocal.remove()?

✅ 1. When you’re done with the thread-local value

If your thread is long-lived (like in a thread pool), you must clean up the thread-local variable after you’re done using it.

Continue reading →
Posted in Без рубрики | Comments Off on Java.Multithreading.When should i call threadLocal.remove()

Java.Multithreding.What is a ThreadLocal variable?

🧵🔐 What is a ThreadLocal Variable?

A ThreadLocal is a special Java class that provides thread-local storage.

📌 Each thread that accesses a ThreadLocal variable gets its own independent copy of the variable.

So even though many threads use the same ThreadLocal instance, each thread interacts only with its own isolated value.

Continue reading →
Posted in Без рубрики | Comments Off on Java.Multithreding.What is a ThreadLocal variable?

Java.Multithreading.How to dump a thread?

🧵🛠️ How to Dump Threads in Java

✅ 1. Using Command-Line Tools

🔸 A) jstack — Most Common

jstack <PID>

Dumps all thread stack traces of a running JVM.

Continue reading →
Posted in Без рубрики | Comments Off on Java.Multithreading.How to dump a thread?

Java.Multithreading.What is the JVM startup parameter used to control the size of a thread stack?

🔍 In the Java Virtual Machine (JVM), you can control the size of each thread’s stack using the following startup parameter:

Continue reading →
Posted in Без рубрики | Comments Off on Java.Multithreading.What is the JVM startup parameter used to control the size of a thread stack?

Java.Multithreading.How to share data between two threads?

✅ Ways to Share Data Between Threads in Java

Let’s go step by step from simple to advanced.

Continue reading →
Posted in Без рубрики | Comments Off on Java.Multithreading.How to share data between two threads?

Java.Multithreading.What is the difference between stack and heap in terms of multithreading?

🧠 Stack vs Heap in Multithreading

FeatureStackHeap
📌 ScopeThread-local (private per thread)Shared among all threads
🧵 Thread-safety✅ Safe — each thread has its own stack❌ Not safe — needs synchronization
🧠 UseStores local variables, method callsStores objects, instance data
♻️ LifetimeLives while method is runningLives until GC collects it
🧹 Clean-upAutomatic when method returnsGarbage Collected

🔍 Stack (Per Thread)

Each thread has its own stack where it stores:

  • Method call frames
  • Local variables (primitives and references)
  • Return addresses

No two threads share the same stack, so: ✔️ No synchronization needed ✔️ Very fast access

Continue reading →
Posted in Без рубрики | Comments Off on Java.Multithreading.What is the difference between stack and heap in terms of multithreading?

Java.Multithreading.Future and CompletableFuture.

Java has a modern async feature very similar to Promises in TypeScript, and it’s called CompletableFuture — it lets you run tasks asynchronously without blocking the main thread and chain actions just like promises.

Continue reading →
Posted in Без рубрики | Comments Off on Java.Multithreading.Future and CompletableFuture.

Java.Multithreading.What is callable and future ? how are they connected ?

🔁 Callable vs Runnable

FeatureRunnableCallable<V>
Returns result?❌ No✅ Yes (generic type V)
Can throw exception?❌ No (must handle inside)✅ Yes (throws Exception)
Method to overriderun()call()
Continue reading →
Posted in Без рубрики | Comments Off on Java.Multithreading.What is callable and future ? how are they connected ?

Java.Multithreading.What is the difference between submit() and execute() methods in a thread pool?

Let’s compare submit() and execute() clearly — both are used to hand over tasks to a thread pool, but they behave differently in a few key areas.

✅ 1. Return Type

MethodReturns
execute()void
submit()Future<?>
  • submit() gives you a Future object — you can use it to:
    • Check if the task is done
    • Cancel the task
    • Get the result (or exception, if any)
Continue reading →
Posted in Без рубрики | Comments Off on Java.Multithreading.What is the difference between submit() and execute() methods in a thread pool?