2 / 2 / 2
Регистрация: 23.02.2012
Сообщений: 208
|
|
1 | |
Одинаковая очередность событий вне зависимости от количества потоков09.04.2014, 15:42. Показов 666. Ответов 3
Метки нет (Все метки)
Предположим у нас есть массив из турелей и где то в середине его находятся турели А и Б. В цикле мы проходим по всем турелям и запускаем у них метод shootEnemy(). Поскольку турель А находится в массиве впереди Б, то она стреляет первой и убивает противника, до того как это сделает Б. А теперь представим, что мы разделили проход массива между двумя потоками и первая его половина вместе с А на конце обрабатывается в первом потоке, а оставшаяся половина с Б в начале обрабатывается во втором потоке. Теперь уже Б находится в начале и убьет противника раньше А. Как избежать такой ситуации, что бы в не зависимости от количества потоков, очередность событий не нарушалась?
0
|
09.04.2014, 15:42 | |
Ответы с готовыми решениями:
3
Очередность событий Очередность событий в потоке Очерёдность событий в разных браузерах Как указать очерёдность событий не через setTimeout? |
2 / 2 / 2
Регистрация: 23.02.2012
Сообщений: 208
|
|
09.04.2014, 19:53 [ТС] | 3 |
snake32, почитал, но если честно, не понял как это решает мою проблему. Критические секции/атомарные ф-ии/семфоры/мьютексы, например, избавят от возможности одновременного исполнения метода destroy() противника сразу несколькими потоками, т.е. кто первый застолбил тот и выполняет. Ну а события... Кто первым сообщил о попадании, тот и уничтожит противника. Так что, ИМХО, вопрос остается открытым.
0
|
09.04.2014, 21:17 | 4 |
Не уже ли так всё плохо?
Прежде чем параллелить нужно разобраться какая часть алгоритма тормозит сильнее всего(её и параллелить). Так как полностью весь алгоритм невозможно распараллелить ввиду его последовательного происхождения. Иначе вы потеряете больше на всякие синхронизации. И вместо ожидаемого увеличения производительности получите существенное замедление. Можно попыться менять алгоритм так чтобы он более-менее подходил и к параллельным вычислениям и к вашей задаче. Но к сожалению это не всегда возможно.
0
|
09.04.2014, 21:17 | |
09.04.2014, 21:17 | |
Помогаю со студенческими работами здесь
4
С помощью сигналов организовать очередность записи двух потоков в файл. Обработка событий вне класса Отслеживание событий вне окна Имитация событий мышки вне формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |