Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для TheRainbowDog
1 / 1 / 0
Регистрация: 19.02.2019
Сообщений: 18

Работа с многопоточностью "Thread"

09.03.2019, 16:52. Показов 1317. Ответов 3

Студворк — интернет-сервис помощи студентам
Имеется 4 потока.

1. Умножает переменную на 2

2. Делит на 2

3. Добавляет 2

4. Минусует 2

Запустить поток, сделать так, чтобы все потоки конкурировали за одну переменную. Посмотреть, что получится в итоге.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2019, 16:52
Ответы с готовыми решениями:

Работа с многопоточностью "Thread"
Симулировать футбольный матч. Играют 2 команды (2 потока). Оба: Забивают мячи (от 0 до 15 за матч, Random) Зарабатывают жёлтые карты...

Работа с многопоточностью "Thread"
Создать 6 потоков. В каждом из которых на консоль выводится буквы(Р, Я, А, Л, И, Д). Нужно сделать так, чтобы буквы выходили...

Работа с многопоточностью
Имеется следующая довольно не сложная задачка: Написать программу, которая запускает параллельно 300 потоков, класса IncreaserThread....

3
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
09.03.2019, 17:51
TheRainbowDog, ну так запусти, посмотри. Вопрос-то в чем?
0
 Аватар для TheRainbowDog
1 / 1 / 0
Регистрация: 19.02.2019
Сообщений: 18
09.03.2019, 19:17  [ТС]
Вопрос в решение.
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
10.03.2019, 22:21
Лучший ответ Сообщение было отмечено TheRainbowDog как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
public class SampleThreads {
    public static void main(String[] args) {
        int count = 10;
        Counter counter = new Counter();
 
        Thread one = new Thread(new MyThread(counter, count, "+", 500), "One");
        Thread two = new Thread(new MyThread(counter, count, "-", 400), "Two");
        Thread three = new Thread(new MyThread(counter, count, "*", 700), "Three");
        Thread four = new Thread(new MyThread(counter, count, "/", 300), "Four");
 
        one.start();
        two.start();
        three.start();
        four.start();
    }
}
 
class MyThread implements Runnable {
    private final Counter counter;
    private int amount;
    private final String operation;
    private final int delayMS;
 
    MyThread(Counter counter, int amount, String operation, int delayMS) {
        this.counter = counter;
        this.amount = amount;
        this.operation = operation;
        this.delayMS = delayMS;
    }
 
    @Override
    public void run() {
        int number;
        int result;
        try {
            while (!Thread.currentThread().isInterrupted() && this.amount != 0) {
                number = this.counter.getCount();
                result = solution(number, this.operation);
                this.counter.setCount(result);
                System.out.printf("Thread [%s]: %d %s 2 = %d;\n",
                        Thread.currentThread().getName(), number, this.operation, result);
                this.amount--;
                Thread.sleep(this.delayMS);
            }
        } catch (InterruptedException e) {
            System.out.println("Thread [" + Thread.currentThread().getName() + "] is stopped.");
        }
    }
 
    private int solution(int number, String operation) {
        if (operation != null) {
            if (operation.equals("+")) {
                number += 2;
            } else if (operation.equals("-")) {
                number -= 2;
            } else if (operation.equals("*")) {
                number *= 2;
            } else {
                number /= 2;
            }
        }
        return number;
    }
}
 
class Counter {
    private int count;
 
    public int getCount() {
        return count;
    }
 
    public void setCount(int count) {
        this.count = count;
    }
 
    @Override
    public String toString() {
        return String.format("%d", this.count);
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2019, 22:21
Помогаю со студенческими работами здесь

Работа с Thread
Здравсвуйте! Нужна сросно помощь. Имеется несколько интерфейсов лежащих в разный библиотеках. Мне нужно запустить один или...

работа с Thread
Итак, создал я 2 потока которые выполняют мне счет. Один поток для одного случая, второй поток для другого случая. Теперь нужно мне...

Работа с Thread
Привет всем. Не могу понять в чем дело. Создаю второй поток но программа всё равно зависает. В чём дело? ...

Работа с потоками thread
Необходимо распараллелить вычисление интеграла (методом прямоугольников), но иногда программа, во-первых, вычисляет неправильно сам...

Работа с классом <thread>
Как выполнить параллельно итерации цикла с помощью класса &lt;thread&gt;? Если использовать другие библиотеки (например OpenMP), то все просто....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru