Multithreading Interview Questions in Java for Freshers What are the benefits of using Multithreading? 2


Page 22 © Copyright by Interviewbit Multithreading Interview Questions



Yüklə 0,82 Mb.
Pdf görüntüsü
səhifə14/20
tarix13.12.2023
ölçüsü0,82 Mb.
#176388
1   ...   10   11   12   13   14   15   16   17   ...   20
Threads

Page 22
© Copyright by Interviewbit


Multithreading Interview Questions
Example
Page 23
© Copyright by Interviewbit


Multithreading Interview Questions
package org.arpit.java2blog;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
public class 
BlockingQueuePCExample
{
public static void 
main
(String[] args) {
BlockingQueue queue=new ArrayBlockingQueue<>(
5
);
Producer producer=new Producer(queue);
Consumer consumer=new Consumer(queue);
Thread producerThread = new Thread(producer);
Thread consumerThread = new Thread(consumer);
producerThread.start();
consumerThread.start();
}
static class 
Producer
implements 
Runnable
{
BlockingQueue queue=null;
public 
Producer
(BlockingQueue queue) {
super();
this.queue = queue;
}
@Override
public void 
run
() {
try {
System.out.println(
"Producing element 1"
);
queue.put(
"Element 1"
);
Thread.sleep(
1000
);
System.out.println(
"Producing element 2"
);
queue.put(
"Element 2"
);
Thread.sleep(
1000
);
System.out.println(
"Producing element 3"
);
queue.put(
"Element 3"
);
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
static class 
Consumer
implements 
Runnable
{
BlockingQueue queue=null;
public 
Consumer
(BlockingQueue queue) {
super();
this.queue = queue;
}
@
id
Page 24
© Copyright by Interviewbit


Multithreading Interview Questions
Output
Producing element 1
Consumed Element 1
Producing element 2
Consumed Element 2
Producing element 3
Consumed Element 3
26. Can you start a thread twice?
No, it's not at all possible to restart a thread once a thread gets started and
completes its execution. Thread only runs once and if you try to run it for a second
time, then it will throw a runtime exception i.e.,
java.lang.IllegalThreadStateException. 
Example
public class 
TestThreadTwice1
extends 
Thread
{
public void 
run
(){
System.out.println(
" thread is executing now........"
);
}
public static void 
main
(String args[]){
TestThreadTwice1 t1=new TestThreadTwice1();
t1.start();
t1.start();
}
}
Output:
thread is executing now........
Exception in thread "main" java.lang.IllegalThreadStateException
27. Explain context switching.
Page 25
© Copyright by Interviewbit


Multithreading Interview Questions
Context switching is basically an important feature of multithreading. It is referred to
as switching of CPU from one thread or process to another one. It allows multiple
processes to share the same CPU. In context switching, the state of thread or process
is stored so that the execution of the thread can be resumed later if required. 
28. What is CyclicBarrier and CountDownLatch?
CyclicBarrier and CountDownLatch, both are required for managing multithreaded
programming. But there is some difference between them as given below: 
CyclicBarrier: It is a tool to synchronize threads processing using some algorithm. It
enables a set of threads to wait for each other till they reach a common execution
point or common barrier points, and then let them further continue execution. One
can reuse the same CyclicBarrier even if the barrier is broken by setting it. 
CountDownLatch: It is a tool that enables main threads to wait until mandatory
operations are performed and completed by other threads. In simple words, it makes
sure that a thread waits until the execution in another thread completes before it
starts its execution. One cannot reuse the same CountDownLatch once the count
reaches 0. 
29. What do you mean by inter-thread communication?
Page 26
© Copyright by Interviewbit


Multithreading Interview Questions
Inter-thread communication, as the name suggests, is a process or mechanism using
which multiple threads can communicate with each other. It is especially used to
avoid thread polling in java and can be obtained using wait(), notify(), and notifyAll()
methods. 
30. What is Thread Scheduler and Time Slicing?
Thread Scheduler: It is a component of JVM that is used to decide which thread will
execute next if multiple threads are waiting to get the chance of execution. By
looking at the priority assigned to each thread that is READY, the thread scheduler
selects the next run to execute. To schedule the threads, it mainly uses two
mechanisms: Preemptive Scheduling and Time slicing scheduling.
Time Slicing: It is especially used to divide CPU time and allocate them to active
threads. In this, each thread will get a predefined slice of time to execute. When the
time expires, a particular thread has to wait till other threads get their chances to use
their time in a round-robin fashion. Every running thread will get executed for a fixed
time period. 

Yüklə 0,82 Mb.

Dostları ilə paylaş:
1   ...   10   11   12   13   14   15   16   17   ...   20




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin