29. Multithreading and Concurrency in Java: Part1 | Threads, Process and their Memory Model in depth

preview_player
Показать описание
➡️ Notes: Shared in the Member Community Post (If you are Member of this channel, then pls check the Member community post, i have shared the Notes link there)

➡️ Join this channel to get access to member only perks:

Overall Important Subtopics of Multithreading and Concurrency:
----------------------------------------------------------------------------------------------------------

- Introduction of Multithreading: (Covered in this Video)
* Definition of Multithreading
* Benefits and Challenges of Multithreading
* Processes v/s Threads
* Multithreading in Java

- Java Memory Model of Process and thread (Covered in this Video)

- Basics of Threads - Part1:
* Creating Threads
* Extending the Thread Class
* Implementing the Runnable Interface
* Thread Lifecycle
* New
* Runnable
* Blocked
* Waiting
* Timed Waiting
* Terminated

- Basics of Thread - Part2 : Inter Thread Communication and Synchronization
* Synchronization and Thread Safety
* Synchronized Methods
* Synchronized Blocks
* Inter-Thread Communication
* wait(), notify(), and notifyAll() methods
* Producer-Consumer Problem - Assingment


- Basics of Threads - Part3
* Producer-Consumer Problem - Solution discuss
* Stop, Resume, Suspended method is deprecated, understand why and its solution
* Thread Joining
* Volatile Keyword
* Thread Priority and Daemon Threads

- Some Advanced Topics
* Thread Pools
* Executor Framework
* ThreadPoolExecutor
* Callable and Future
* Fork/Join Framework
* ThreadLocal in Multithreading

- Concurrency Utilities
* Executors and ExecutorService
* Callable and Future
* CompletableFuture
* ScheduledExecutorService
* CountDownLatch, CyclicBarrier, Phaser, and Exchanger

- Concurrent Collections (already discussed during Collections topic, will provide working example for this)
* ConcurrentHashMap
* ConcurrentLinkedQueue and ConcurrentLinkedDeque
* CopyOnWriteArrayList
* BlockingQueue Interface
* ArrayBlockingQueue
* LinkedBlockingQueue
* PriorityBlockingQueue

- Atomic Variables
* AtomicInteger, AtomicLong, and AtomicBoolean
* AtomicReference and AtomicReferenceArray
* Compare-and-Swap Operations

- Locks and Semaphores
* ReentrantLock
* ReadWriteLock
* StampedLock
* Semaphores
* Lock and Condition Interface

- Parallel Streams (already discussed during Stream topic, will provide working example for this)

- Best Practices and Patterns
* Thread Safety Best Practices
* Immutable Objects
* ThreadLocal Usage
* Double-Checked Locking and its Issues
* Concurrency Design Patterns

- Common Concurrency Issues and Solutions
* Deadlocks
* Starvation
* Livelocks
* Race Conditions
* Strategies for Avoiding Concurrency Issues

- Java 9+ Features
* Reactive Programming with Flow API
* CompletableFuture Enhancements
* Process API Updates

- Java 11+ Features
* Local-Variable Type Inference (var keyword)
* Enhancements in Optional class
* New Methods in the String class relevant to concurrency
Рекомендации по теме
Комментарии
Автор

Such a crystal clear explanation of core concepts, I don't think no body explains so well even in highly paid courses.
Thanks Shreyansh!!

chiveshupneja
Автор

The difference here is the blend of java concepts + core cs concepts. Very rares you find some one teaching a language actually mapping with its actual cs core concepts.

saswatsenapati
Автор

It's absolutely clear and such a great learning, I can't thank you enough for sharing such valuable knowledge

SahithiMangalapalli
Автор

Eagerly waiting for the spring playlist

facon
Автор

God-level concepts.Thanks for such valuable content.

imrohan
Автор

you made my day.. Thanks for the crystal clear explanation in simple terms ❤🎉

Rameez-Raja
Автор

Wooo...Take a bow....
Such a great explanation..🙌
Really looking forward for upcoming ones for this topic.
Also, show the things with code execution wherever it is possible, which you always does so. Thank you!

Sushil
Автор

Worth to have your channel's membership. Nicely explained.

stepswithvishnu
Автор

I believe even the creator of Java couldn't explain it better than you did.

rajneeshyadav
Автор

VIDEO 3
My Motive for commenting: Watching all videos of sir/bhaiya, to get his personal guidance and referals for sde job .
My Feeling : Amazing to learn from someone in big position in paypal company
Want to be under ur guidance and chatrachaaya
Thankyou Shrayansh sir/bhaiya

pleasantdayNwisdom
Автор

Hi Shrayansh,
Great, video once again but where is part 2?

AkshayAgarwalCoding
Автор

You deserve more than million subs 👍👍👍👍👍

drissaitkassimusic
Автор

Bhai itna detail me self study karna ho toh?

car_holic
Автор

Truely very great content man!!
Just one suggestion, is it possible that when you research for these videos you can mark the sources too any books articles etc.
And for this thread series any suggestion for any good resources explaining with this level of deepness or any sources you used can you link them.

vaibhavjain
Автор

@Shreyansh Great content. One thing I wanted to know is where is Code Segment present? In the ROM/EPROM? What about extra segment ? In the RAM? This needs to be known. Probably a small wrapper class on CPU architecture and where different segments are located shall help understand multithreading better

mithunvasisht
Автор

Also Can you please brief me about how the metaspace came in picture and in which memory it will get allocated. from instance of JVM or the central JVM or The natice memory?

piyushjainwork
Автор

maza aaya kaafi din baad kuch padh ke.
#Day4 of 7Days of java

siddhantprakash.
Автор

When I run
Java -Xms256m -Xmx2g Test

What will be the total JVM heap memory allocated.
How much each process JVM instance will get if I have 2 process running.
And how it will be decided?

adhyanneekhra
Автор

Thanks a lot for this wonderful knowledge sharing. Can someone please tell where is the remaining videos for multithreading part 2

yogendrasingh-nzpw
Автор

Point to point brings very much clearity. Thank You

zaheerabass