ns21
Q1]
import java.util.*;
public class SubjectNames {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the value of N: ");
int N = scanner.nextInt();
LinkedList<String> subjects = new LinkedList<>();
System.out.println("Enter " + N + " subject names:");
for (int i = 0; i < N; i++) {
String subject = scanner.next();
subjects.add(subject);
}
System.out.println("Subject Names:");
Iterator<String> iterator = subjects.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
scanner.close();
}
}
Q2]
import java.util.LinkedList;
class ProducerConsumer {
LinkedList<Integer> buffer = new LinkedList<>();
int capacity = 1;
public void produce() throws InterruptedException {
int value = 0;
while (true) {
synchronized (this) {
while (buffer.size() == capacity) {
wait();
}
System.out.println("Producer produced: " + value);
buffer.add(value++);
notify();
Thread.sleep(1000); // Simulating some delay
}
}
}
public void consume() throws InterruptedException {
while (true) {
synchronized (this) {
while (buffer.isEmpty()) {
wait();
}
int consumedValue = buffer.removeFirst();
System.out.println("Consumer consumed: " + consumedValue);
notify();
Thread.sleep(1000);
}
}
}
}
public class Main {
public static void main(String[] args) {
final ProducerConsumer pc = new ProducerConsumer();
Thread producerThread = new Thread(new Runnable() {
public void run() {
try {
pc.produce();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
Thread consumerThread = new Thread(new Runnable() {
public void run() {
try {
pc.consume();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
producerThread.start();
consumerThread.start();
}
}