Java.util.scanner;
Код: Выделить всё
public class AddElementsInLists {
private List firstValues = new ArrayList();
private List firstSymbols = new ArrayList();
private List secondValues = new ArrayList();
private List secondSymbols = new ArrayList();
private static final Object lock1 = new Object();
private static final Object lock2 = new Object();
private static final Object lock3 = new Object();
private static final Object lock4 = new Object();
public static void addingForFirstList(String firstValue, Scanner scanner, List firstValues) {
synchronized (lock1) {
firstValue = scanner.nextLine();
firstValues.add(firstValue);
}
}
public static void addingForSymbolsList1(String firstSymbol, Scanner scanner, List firstSymbols) {
synchronized (lock2) {
firstSymbol = scanner.nextLine();
firstSymbols.add(firstSymbol);
}
}
public static void addingForSecondList(String secondValue, Scanner scanner, List secondValues) {
synchronized (lock3) {
secondValue = scanner.nextLine();
secondValues.add(secondValue);
}
}
public static void addingForSymbolsList2(String secondSymbol, Scanner scanner, List secondSymbols) {
synchronized (lock4) {
secondSymbol = scanner.nextLine();
secondSymbols.add(secondSymbol);
} // return secondSymbols;
} } chat.sendMessage(); import java.util.ArrayList; import java.util.List; import java.util.Scanner;
< /code>
Тест открытого класса {
private static String firstvalue;
Private Static String FirstSymbol;
Private Static String SecondValue;
Private Static String SecondSymbol; < /p>
private static List firstValues = new ArrayList();
private static List firstSymbols = new ArrayList();
private static List secondValues = new ArrayList();
private static List secondSymbols = new ArrayList();
public static void main(String[] args) throws InterruptedException {
Scanner scanner = new Scanner(System.in);
while (!scanner.nextLine().equals("=")) {
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
AddElementsInLists.addingForFirstList(firstValue, scanner, firstValues);
}
});
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
AddElementsInLists.addingForFirstList(firstSymbol, scanner, firstSymbols);
}
});
Thread thread3 = new Thread(new Runnable() {
@Override
public void run() {
AddElementsInLists.addingForFirstList(secondValue, scanner, secondValues);
}
});
Thread thread4 = new Thread(new Runnable() {
@Override
public void run() {
AddElementsInLists.addingForFirstList(secondSymbol, scanner,
< /code>
secondsymbols);
}
}); < /p>
thread1.start();
thread2.start();
thread3.start();
thread4.start();
thread1.join();
thread4.join();
thread2.join();
thread3.join();
}
System.out.println(firstValues);
System.out.println(firstSymbols);
System.out.println(secondValues);
System.out.println(secondSymbols);
} }
Подробнее здесь: https://stackoverflow.com/questions/795 ... n-parallel