Как я могу написать данные в 4 листах параллельно?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу написать данные в 4 листах параллельно?

Сообщение Anonymous »

Я пишу калькулятор, и в ходе написания его я решил добавить примеры элементов в 4 различных массивов. Я записываю строки в простынях. У меня вопрос, как заполнить 4 Arraylist параллельно с помощью многопоточного чтения? Нужно ли мне использовать синхронизацию на разных объектах, или мне нужно использовать безопасные потоки классов? Или я должен использовать оба? импортировать java.util.list; Import
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу написать данные в 4 листах параллельно?
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как я могу написать данные в 4 листах параллельно?
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • ClosedXML использует выражение «элементы» на нескольких листах с разными данными
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Извлечение данных из ячеек Excel, полученных в результате сложных вычислений на нескольких листах
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как найти data_automation_id для создания новой рабочей книги в листах Microsoft Online?
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»