implement TODOs exept bonus tasks
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# Answers of theoretical questions
|
||||
|
||||
## 1:
|
||||
|
||||
**outputs:**
|
||||
|
||||
Calling run()
|
||||
Running in: main
|
||||
Calling start()
|
||||
Running in: Thread-2
|
||||
|
||||
this is because of the difference between run() and start() method.
|
||||
when you call run method, it only calls the run function of StartVsRun class and it runs on the main thread;
|
||||
but when you call **start** method it runs on new thread(here we name it Thread-2)
|
||||
---
|
||||
## 2:
|
||||
|
||||
**outputs:**
|
||||
|
||||
Main thread ends.
|
||||
Daemon thread running...
|
||||
|
||||
if we set daemon true The **JVM** terminates the thread right after the main thread ends.
|
||||
if we don't set the thread as a daemon, after the main thread ended it will continue it's work until it will be done(print Daemon thread running 20 times).
|
||||
|
||||
|
||||
### Real-Life use case of daemon threads:
|
||||
|
||||
- Memory and Resource Management(like java's garbage collector)
|
||||
- Infrastructure & Telemetry Monitoring(like send a ping to a central server every 5 seconds)
|
||||
- Spell Checkers
|
||||
|
||||
## 3:
|
||||
|
||||
**output:**
|
||||
|
||||
Thread is running using a ...!
|
||||
|
||||
it calls **Lambda Expression** and it is shorter and faster way than making a class which extend thread or implement runnable to have another thread for our works.
|
||||
Reference in New Issue
Block a user