Я пишу калькулятор, и в ходе написания его я решил добавить примеры элементов в 4 различных массивов. Я записываю строки в простынях. У меня вопрос, как заполнить 4 Arraylist параллельно с помощью многопоточного чтения? Нужно ли мне использовать синхронизацию на разных объектах, или мне нужно использовать безопасные потоки классов? Или я должен использовать оба? импортировать java.util.list; Import
Java.util.scanner;
Я пишу калькулятор, и в ходе написания его я решил добавить примеры элементов в 4 различных массивов. Я записываю строки в простынях. У меня вопрос, как заполнить 4 Arraylist параллельно с помощью многопоточного чтения? Нужно ли мне использовать синхронизацию на разных объектах, или мне нужно использовать безопасные потоки классов? Или я должен использовать оба? импортировать java.util.list; Import Java.util.scanner; [code]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); } });
Я пишу калькулятор, и в ходе написания его я решил добавить примеры элементов в 4 различных массивов. Я записываю строки в простынях. У меня вопрос, как заполнить 4 Arraylist параллельно с помощью многопоточного чтения? Нужно ли мне использовать...
Я пишу калькулятор, и в ходе написания его я решил добавить примеры элементов в 4 различных массивов. Я записываю строки в простынях. У меня вопрос, как заполнить 4 Arraylist параллельно с помощью многопоточного чтения? Нужно ли мне использовать...
Я столкнулся с проблемой при извлечении данных из ячейки Excel, значение которой получается в результате сложных вычислений, охватывающих несколько листов. Источник данных включает в себя вычисляемые поля из различных таблиц, что усложняет процесс...
Я пытаюсь использовать Selenium Manager с пакетами Nuget для имитации функциональных сценариев в реальном времени, таких как онлайн -листы MS и другие рабочие нагрузки. Я могу войти в онлайн -Excel по адресу
Но я вижу, что мой код может не...