0% found this document useful (0 votes)
8 views23 pages

PPL Unit 5

The document explains the differences between processes and threads, highlighting that processes are independent programs with their own memory, while threads share memory within a process. It also details the five stages of a thread's lifecycle in Java: New, Runnable, Running, Blocked/Waiting/Sleeping, and Terminated. Additionally, it covers various Java concepts related to multithreading, including the isAlive() and join() methods, and provides examples of implementing threads in Java.

Uploaded by

Vaibhav Joshi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views23 pages

PPL Unit 5

The document explains the differences between processes and threads, highlighting that processes are independent programs with their own memory, while threads share memory within a process. It also details the five stages of a thread's lifecycle in Java: New, Runnable, Running, Blocked/Waiting/Sleeping, and Terminated. Additionally, it covers various Java concepts related to multithreading, including the isAlive() and join() methods, and provides examples of implementing threads in Java.

Uploaded by

Vaibhav Joshi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Question:

Differentiate between Process and Thread. What are the various stages of the Thread
lifecycle?

Answer 1: In Simple English

Difference Between Process and Thread:

Feature Process Thread

Definition A program in execution A part of a process

Memory Has its own memory Shares memory with other threads

Communication Complex (uses IPC) Easy (shares memory)

Overhead More resource-heavy Lightweight and faster

Dependency Processes are independent Threads are dependent (same process)

Thread Lifecycle in Java:

Threads in Java go through 5 main stages:

1. New

o Thread is created but not started.

o Code: Thread t = new Thread();

2. Runnable

o Thread is ready to run but not yet running.

o Code: t.start();

3. Running

o Thread is actively executing the task.

4. Blocked / Waiting / Sleeping

o Thread is paused for some time (e.g., using sleep(), waiting for resource).

5. Terminated (Dead)
o Thread has finished execution or is stopped.

Example to Show Thread States:

java

CopyEdit

class MyThread extends Thread {

public void run() {

System.out.println("Thread is running...");

public class ThreadExample {

public static void main(String[] args) {

MyThread t = new MyThread(); // New

t.start(); // Runnable → Running

}
Question:

Write a JavaScript program to develop a simple web application.

Answer 1: In Simple English (JavaScript + HTML)


Let’s create a simple web application that takes a number input from the user and shows
whether it is even or odd using JavaScript.

HTML + JavaScript Code:

html

CopyEdit

<!DOCTYPE html>

<html>

<head>

<title>Even or Odd Checker</title>

</head>

<body>

<h2>Even or Odd Checker</h2>

<label>Enter a number:</label>

<input type="number" id="num">

<button onclick="checkNumber()">Check</button>

<p id="result"></p>

<script>

function checkNumber() {

let number = document.getElementById("num").value;

let result = "";

if (number % 2 === 0) {

result = number + " is Even.";

} else {
result = number + " is Odd.";

document.getElementById("result").innerText = result;

</script>

</body>

</html>

How It Works (Simple Explanation):

1. User enters a number.

2. On clicking Check, JavaScript function checkNumber() runs.

3. It checks whether the number is even or odd.

4. Shows the result in <p> tag

Question:

Explain isAlive() and join() methods in multithreading. (For 8 Marks)

Answer 1: In Simple English (with Theory + Code + Output)

What is Multithreading in Java?

Multithreading allows multiple threads to run at the same time.


Each thread runs independently, but they share the same memory.

1) isAlive() Method:

• Purpose: Checks if a thread is still running.

• Returns: true if thread is alive (running or ready to run), else false.

Syntax:

java
CopyEdit

threadObject.isAlive();

Use Case: To check if the thread is still active before taking an action.

2) join() Method:

• Purpose: Forces one thread to wait until another thread finishes.

• Use: Useful when you want to complete one thread before continuing.

Syntax:

java

CopyEdit

threadObject.join();

Use Case: When thread A must wait for thread B to finish.

Syntax:

java

CopyEdit

t1.join(); // main thread थ ांबेल जोपर्यंत t1 पूर्ण होत न ही

लहान उदाहरण:

java

CopyEdit

MyThread t1 = new MyThread();

t1.start(); // Thread च लू कर

System.out.println(t1.isAlive()); // च लू आहे क बघ

t1.join(); // मुख्य thread थ ांबेल जोपर्यंत t1 पूर्ण होत न ही

Question:

Explain features of AngularJS and ReactJS


Answer 1: In Simple English (for Exam Writing)

Features of AngularJS:

1. MVC Architecture
AngularJS follows Model-View-Controller pattern which separates data (Model), UI
(View), and logic (Controller).
(Helps manage big applications easily.)

2. Two-Way Data Binding


Changes in UI update the model, and changes in the model update the UI
automatically.

3. Dependency Injection
AngularJS manages how different parts of the app depend on each other. This
improves code efficiency.

4. Directives
Special attributes in HTML like ng-model, ng-bind add extra functionality to HTML.

5. Templates
Uses plain HTML as templates which are processed by AngularJS and turned into
views.

6. Testing Support
AngularJS apps are easy to test using unit and end-to-end testing tools.

7. Open Source
Free to use and has a large community support.

Features of ReactJS:

1. Component-Based Architecture
UI is divided into reusable components. Each component has its own logic and
design.

2. Virtual DOM
React uses a virtual DOM to improve performance. Only the changed parts of the
page are updated.

3. One-Way Data Binding


Data flows in a single direction which makes code more predictable and easier to
debug.
4. JSX (JavaScript XML)
Allows writing HTML in JavaScript which improves readability and ease of coding.

5. Reusable Components
Same component can be used in multiple parts of the app, reducing code
duplication.

6. Fast Rendering
Virtual DOM and smart updating mechanism make React apps very fast.

7. Strong Community and Ecosystem


Backed by Facebook, with a wide range of libraries and tools.

8. Trick to Remember AngularJS Features —


“MDT DOT”
9. Think of: "My Dad Took Donuts On Tuesday"

Letter Feature Marathi Hint


M MVC Architecture तीन भ ग – Model, View, Controller
D Data Binding (2-way) UI ↔ Data दोन्हीकडे बदल
T Templates HTML templates
D Directives ng- attributes in HTML
O Open Source मोफत आणर् community support
T Testing Support Unit + E2E Testing
10.
11. Trick to Remember ReactJS Features —
“V-COW JRF”
12. Think of: "Very Cool Old Woman Jumped Right Forward"

Letter Feature Marathi Hint


V Virtual DOM बदललेलां UIच update करतां
C Component-Based पुन्ह व परत र्येर् रे भ ग
O One-Way Data Binding डे ट एक च णदशेने
W Writable in JSX JS मध्ये HTML णलहू शकतो
J JSX (JavaScript XML) JS + HTML mixture
R Reusable Components एक component अनेक वेळ व परत र्येतो
F Fast Rendering Performance fast
Question:
Explain different ways to implement Threads in Java with code example.
Answer 1: In Simple English (Theory + Code Examples)

What is a Thread in Java?

A thread is a small unit of a process. It allows a program to do multiple things at the same
time (parallel tasks).

Ways to Implement Threads in Java:

1. By Extending the Thread Class

We create a class and extend the built-in Thread class.


We override the run() method.
Start the thread using start() method.

Code Example:

java

CopyEdit

class MyThread extends Thread {

public void run() {

System.out.println("Thread is running using Thread class.");

public static void main(String[] args) {

MyThread t1 = new MyThread(); // Create thread

t1.start(); // Start thread

2. By Implementing the Runnable Interface

We create a class that implements Runnable.


Write code inside run() method.
Pass object of class to a Thread object and call start().

Code Example:
java

CopyEdit

class MyRunnable implements Runnable {

public void run() {

System.out.println("Thread is running using Runnable interface.");

public static void main(String[] args) {

MyRunnable obj = new MyRunnable();

Thread t1 = new Thread(obj); // Pass object to Thread class

t1.start(); // Start thread

Explain the below methods in detail. i) ii) iii) Isalive notify


getpriority
i) isAlive()

• Thread च लू आहे क ते तप सतो. (true णकांव false return करतो.)

• (isAlive() method व परून आपल्य ल कळतां की thread अजून च लू आहे क .)

उदाहरण:

java

CopyEdit

Thread t1 = new Thread();

System.out.println(t1.isAlive()); // false (सुरू न ही केल तर false)

t1.start();

System.out.println(t1.isAlive()); // true (च लू केल तर true)

ii) notify()
• एख द thread जो wait() मध्ये आहे , त्य ल परत ज गां करतां.

• (notify() method व परून एक waiting thread सुरू करत र्येतो.)

स िंक्रोनाइज्ड (synchronized) ब्लॉकमध्येच वापरावा लागतो.

उदाहरण:

java

CopyEdit

synchronized(obj) {

obj.notify(); // wait केलेल्य thread ल ज गां करतां

iii) getPriority()

• Thread ची priority क र्य आहे ते स ांगतो.

• (getPriority() व परून आपर् thread च महत्व च स्तर प हू शकतो.)

Priority Range: 1 (lowest) to 10 (highest), default: 5

उदाहरण:

java

CopyEdit

Thread t = new Thread();

t.setPriority(8);

System.out.println(t.getPriority()); // 8

Quick Summary Table:

Method Purpose Marathi Meaning

isAlive() Check if thread is running Thread च लू आहे क ते तप सतो

notify() Wake one waiting thread wait केलेल्य thread ल ज गां करतां

getPriority() Get thread's priority level Thread चे प्र ध न्य णमळवतो


Question:
List the Features, Advantages, and Limitations of Vue.js

Answer 1: In Simple English (Easy for Exam Writing)

Features of Vue.js

1. Reactive Data Binding – UI updates automatically when data changes.

2. Component-Based – Code is organized in reusable components.

3. Virtual DOM – Efficient rendering for better performance.

4. Built-in Directives – Like v-if, v-for, v-bind to control the DOM easily.

5. Two-Way Data Binding – Sync between UI and data using v-model.

6. Lightweight – Small file size and fast to load.

7. Easy Integration – Can be used with existing projects.

8. Routing and State Management – Vue Router and Vuex available.

Advantages of Vue.js

1. Easy to learn and use (Good for beginners).

2. Clean and readable code structure.

3. Fast performance with virtual DOM.

4. Large and growing community.

5. Good documentation and tool support.

6. Can be used for both small and large apps.

Limitations of Vue.js

1. Small community compared to React or Angular.

2. Language barrier (Docs originally in Chinese).

3. Some features not suitable for large enterprise apps.

4. Not backed by a big company like Google (Angular) or Facebook (React).


5. Flexibility can lead to inconsistent coding styles.

Question:
Explain the uses of isAlive() and join() methods in Java Thread with examples.

Answer 1: In Simple English with Code Example

1) isAlive() Method:

• Use: Checks if a thread is still running.

• Returns: true if the thread is active, otherwise false.

Example:

java

CopyEdit

class MyThread extends Thread {

public void run() {

System.out.println("Thread is running...");

public class Main {

public static void main(String[] args) {

MyThread t = new MyThread();

System.out.println("Before start: " + t.isAlive()); // false

t.start();

System.out.println("After start: " + t.isAlive()); // true (maybe)

Output (may vary)

sql

CopyEdit
Before start: false

Thread is running...

After start: true

2) join() Method:

• Use: Tells main thread to wait until another thread finishes.

• Ensures that a thread completes its work before others move ahead.

Example:

java

CopyEdit

class MyThread extends Thread {

public void run() {

for (int i = 1; i <= 3; i++) {

System.out.println("Child Thread: " + i);

try {

Thread.sleep(500);

} catch (InterruptedException e) {

System.out.println(e);

public class Main {

public static void main(String[] args) {

MyThread t = new MyThread();

t.start();
try {

t.join(); // Main thread waits until t finishes

} catch (InterruptedException e) {

System.out.println(e);

System.out.println("Main thread ends after child thread.");

Output:

Child Thread: 1

Child Thread: 2

Child Thread: 3

Main thread ends after child thread

Question:
Interpret the terms Multitasking, Multiprocessing, and Multithreading in Java with
example.

Answer 1: In Simple English (With Examples)

1) Multitasking

• Definition: Multitasking means executing multiple tasks at the same time.

• Example: Typing in MS Word while listening to music.

• Java supports multitasking using threads.

2) Multiprocessing

• Definition: Multiprocessing means using two or more processors to execute multiple


processes at the same time.
• Used for faster processing and parallel execution.

• Java supports multiprocessing when run on multi-core systems.

3) Multithreading

• Definition: Multithreading means executing multiple threads in a single program.

• Saves memory and increases performance.

• Each thread runs in parallel.

Simple Java Example of Multithreading:

java

CopyEdit

class MyThread extends Thread {

public void run() {

for (int i = 1; i <= 3; i++) {

System.out.println(Thread.currentThread().getName() + " - Count: " + i);

public class Main {

public static void main(String[] args) {

MyThread t1 = new MyThread();

MyThread t2 = new MyThread();

t1.start(); // Starts first thread

t2.start(); // Starts second thread

Output Example (Output may vary):


mathematica

CopyEdit

Thread-0 - Count: 1

Thread-1 - Count: 1

Thread-0 - Count: 2

Thread-1 - Count: 2

Thread-0 - Count: 3

Thread-1 - Count: 3

ChatGPT said:

Question:
List the Features, Advantages, and Limitations of AngularJS

Answer 1: In Simple English (Theory with Points)

Features of AngularJS

1. MVC Architecture – Follows Model-View-Controller design.

2. Two-Way Data Binding – Updates the view automatically when model changes.

3. Directives – Special HTML tags like ng-model, ng-repeat.

4. Dependency Injection – Components are given dependencies automatically.

5. Templates – Uses HTML templates for building UI.

6. Single Page Application (SPA) – Allows fast loading and dynamic pages.

7. Routing – Navigation without reloading full page.

Advantages of AngularJS

1. Reduces code due to two-way binding.

2. Reusable components (via directives).

3. Easier testing and debugging.

4. Active Google support and community.


5. Useful for dynamic web apps.

Limitations of AngularJS

1. Performance issues in large apps.

2. Learning curve is steep for beginners.

3. Not SEO friendly (needs workarounds).

4. Too much abstraction (can confuse new devs).

5. Older version compared to Angular (Angular 2+ is better in many cases

Question:
Write the JavaScript code to create Login Page Form (Without using <label> tag, Simple
Code).

Answer: Simple HTML + JavaScript Login Page (No <label>, Easy Code)

html

CopyEdit

<!DOCTYPE html>

<html>

<head>

<title>Simple Login</title>

</head>

<body>

<h2>Login Form</h2>

<input type="text" id="username" placeholder="Enter Username"><br><br>

<input type="password" id="password" placeholder="Enter Password"><br><br>

<button onclick="login()">Login</button>
<p id="result"></p>

<script>

function login() {

let u = document.getElementById("username").value;

let p = document.getElementById("password").value;

if (u === "admin" && p === "1234") {

document.getElementById("result").innerText = "Login Successful!";

} else {

document.getElementById("result").innerText = "Wrong Username or Password!";

</script>

</body>

</html>

Explanation (in Simple English):

• <input> – For entering username and password.

• placeholder – Shows hint inside the box (no need for <label>).

• onclick="login()" – Calls the login function on button click.

• if – Checks whether username is admin and password is 1234.

• innerText – Shows message below the button.

Output:

Try entering:

• Username: admin
• Password: 1234

• → It shows: Login Successful!


Else: Wrong Username or Password!

ChatGPT said:

Question:
Compare ReactJS, AngularJS, and VueJS.

Answer in Simple Points (English Only)

Feature AngularJS ReactJS VueJS

Type Framework Library Framework

Language Used HTML + TypeScript JSX (JavaScript + XML) HTML + JavaScript

Learning Curve Steep (Hard) Medium Easy

Data Binding Two-way One-way Two-way

DOM Type Real DOM Virtual DOM Virtual DOM

Performance Moderate High High

Community Very Large (by Growing


Large (by Google)
Support Meta/Facebook) (Independent)

File Structure Complex Flexible Simple

Large-scale
Best For Dynamic and interactive UI Small to medium apps
enterprise apps

State Needs external (Redux, Simple with Vuex


Built-in
Management Context API) (optional)

Short Tricks to Remember

"A-R-V = Hard-Fast-Easy"

• Angular → Full framework, hard to learn, used in big apps.

• React → Just UI library, fast, needs extra setup.

• Vue → Simple, easy to start, good for small apps.


One-Line Summary:

• AngularJS – Full and powerful but complex.

• ReactJS – Fast and flexible but needs extra tools.

• VueJS – Simple and lightweight, best for beginners.

Question:
Elaborate the terms getPriority() and setPriority() methods with example.

Answer 1: Simple English Explanation with Code

In Java multithreading, each thread has a priority.


Priority means which thread should get more importance during execution.
Java thread priorities are values between 1 (MIN_PRIORITY) and 10 (MAX_PRIORITY).
The default priority is 5 (NORM_PRIORITY).

setPriority(int priority)

• This method is used to set the priority of a thread.

• Syntax:

java

CopyEdit

thread.setPriority(8); // sets thread priority to 8

getPriority()

• This method is used to get (see) the current priority of a thread.

• Syntax:

java

CopyEdit

int p = thread.getPriority(); // returns thread priority

Example Program:
java

CopyEdit

public class ThreadPriorityExample {

public static void main(String[] args) {

Thread t1 = new Thread(() -> {

System.out.println("Thread 1 Running");

});

Thread t2 = new Thread(() -> {

System.out.println("Thread 2 Running");

});

// Set priorities

t1.setPriority(Thread.MIN_PRIORITY); // Priority 1

t2.setPriority(Thread.MAX_PRIORITY); // Priority 10

// Display priorities

System.out.println("Priority of Thread 1: " + t1.getPriority());

System.out.println("Priority of Thread 2: " + t2.getPriority());

t1.start();

t2.start();

Output (may vary depending on JVM):

Priority of Thread 1: 1

Priority of Thread 2: 10
Thread 2 Running

Thread 1 Running

You might also like