2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173

Потоки для динамических объктов

27.10.2016, 09:55. Показов 1945. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я имею некий динамический объект - словарь или лист. И мне нужно организовать параллельный поиск, например, минимального значения. Можно ли для этого использовать потоки, таким образом, что при каждом изменении объекта - листа или словаря, на каждую запись в листе или словаре создавался свой поток.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2016, 09:55
Ответы с готовыми решениями:

Вывод объктов
Почему на экран ничего не выводится? <DOCTYPE html> <head><title>Эксперименты</title> <!--<script...

Как организовать счетчик объктов класса?
Привет всем; что-то не получается сделать подсчёт объектов класса делаю так: #include <iostream> class MyClass { ...

Нужен макрос по удалению объктов AutoShape
Приветствую всех форумчан. Есть у кого-нибудь макрос по удалению всех AutoShape с листа excel? Очень нужен. Заранее спасибо)))

12
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
27.10.2016, 10:00
Какая конечная задача? То, что ты сейчас описал выглядит как несуразица.
1
56 / 56 / 31
Регистрация: 24.10.2016
Сообщений: 186
27.10.2016, 10:01
Не могу понять вопрос. То есть, у вас есть список, вместо того, чтоб обойти его в цикле вы хотите запустить len(list) потоков?
1
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173
27.10.2016, 10:16  [ТС]
Ну да, это задача моделирования поиска адресов в кэш-памяти
Вложения
Тип файла: docx Sposoby_otobrazhenia_osnovnoy_pamyati_na_kesh.docx (99.4 Кб, 6 просмотров)
0
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173
28.10.2016, 22:01  [ТС]
Не знаю как можно реализовать ассоциативный поиск с помощью потоков, когда одновременно просматривается каждый элемент в словаре. И как можно распространить поток к следующим строкам кода - если после функции def conting идут еще строки.

Python
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
import threading
import time  
 
ADRESES = ['01110111001000101101000010111010', '01110111001000101101000010111011', '01110111001000101101000010111100', '01110111001000101101000010111101', '01110111001000101101000010111110', '01110111001000101101000010111111', '01110111001000101101000011000000', '01010111001000101101000010111010', '01010111001000101101000010111011', '01010111001000101101000010111100', '01010111001000101101000010111101', '01010111001000101101000010111110', '01010111001000101101000010111111', '01010111001000101101000011000000', '01010111001000101101000011000001', '01010111001000101101000011000010', '01010111001000101101000011000011', '01010111001000101101000011000100', '01010111001000101101000011000101', '01010111001000101101000011000110', '01010111001000101101000011000111', '01010111001000101101000011001000', '01010111001000101101000011001001', '01010111001000101101000011001010', '01010111001000101101000011001011', '01010111001000101101000011001100', '01010111001000101101000011001101', '01010111001000101101000011001110', '01010111001000101101000011001111', '01010111001000101101000011010000', '01010111001000101101000011010001', '01010111001000101101000011010010', '01010111001000101101000011010011', '01010111001000101101000011010100', '01010111001000101101000011010101', '01010111001000101101000011010110', '01010111001000101101000011010111', '01010111001000101101000011011000', '01010111001000101101000011011001', '01010111001000101101000011011010', '01010111001000101101000011011011', '01010111001000101101000011011100', '01010111001000101101000011011101', '01010111001000101101000011011110', '01010111001000101101000011011111', '01010111001000101101000011100000', '01010111001000101101000011100001', '01010111001000101101000011100010', '01010111001000101101000011100011', '01010111001000101101000011100100', '01010111001000101101000011100101', '01010111001000101101000011100110', '01010111001000101101000011100111', '01010111001000101101000011101000', '01010111001000101101000011101001', '01010111001000101101000011101010', '01010111001000101101000011101011', '01010111001000101101000011101100']
CASH={'g':1, 'h':12, '01110111001000101101000010111010': 0.7, '01110111001000101101000010111100': 1.45}
 
def counting(your_adresess, your_cash):
    catch=0
    miss=0
    for  adres in your_adresess:
        k=ADRESES.pop(0)
        time.sleep(0.4)
        u=time.time()
        for j in your_cash:
            if k==j:
                catch = catch+1
            else:
                miss = miss+1
    return miss, catch
 
 
t1 = Thread(target=counting, args=(ADRESES, CASH,))
t2 = Thread(target=counting, args=(ADRESES, CASH,))
 
t1.start()
t2.start()
t1.join()
t2.join()
Добавлено через 11 минут
Т.е. на каждую запись в CASH, мне нужно создать свой поток - но если она меняется каждый раз, т.е. при изменении размеров (словаря) как возможно регулировать количество создаваемых потоков для функции?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
28.10.2016, 22:04
SKY_SHY, нельзя копаться 2 потоками сразу в 1 объекте это бред! Одновременно нельзя работать с 1 объектом!
1
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173
29.10.2016, 09:13  [ТС]
Т.е. мне нужно прикаждом изменении словаря создавать или завершать потоки? НО как это можно реализовать с применением семафоров?

Добавлено через 16 минут
И потом, я ведь не меняю объект - я просто ищу в нем значения и возвращаю количество miss (кэш-промахов), catch (кэш-попаданий)
0
56 / 56 / 31
Регистрация: 24.10.2016
Сообщений: 186
29.10.2016, 11:07
Цитата Сообщение от SKY_SHY Посмотреть сообщение
Т.е. мне нужно прикаждом изменении словаря создавать или завершать потоки?
Не нужно, можно создать N потоков по размеру словаря, но смысла в этом нет - во первых, в интерпретатор встроен GIL (Global Interpretator Lock), который не позволяет работать потокам одновременно, создается только иллюзия их одновременной работы. И во вторых - расходы на организацию множества потоков будут немалые, и по производительности такое решение будет сильно уступать простому циклу в одном потоке.
1
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
29.10.2016, 17:22
SKY_SHY, Если хочешь быстрее обрабатывать данные используй, что нибудь вроде numpy.
1
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173
29.10.2016, 19:33  [ТС]
Спасибо, но вы не поняли, мне нужно искать сразу одновременно во всех элементах словаря какое-то значение, поэтому я хотел использовать мультипоточность.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
29.10.2016, 19:38
Ну уже несколько раз сказали, что это не получится.
1
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173
29.10.2016, 19:48  [ТС]
Т.е. и процессами тоже не получится?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
29.10.2016, 20:13
НЕТ. Нельзя лазить по 1 объекту одновременно из 2 мест.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2016, 20:13
Помогаю со студенческими работами здесь

Инициализация объекта из массива объктов класса
Ребята подскажите, как создать массив объектов класса с инициализацией каждого? CLASS1* class1; //нужно к примеру 5 объектов class1...

Серилизация множества объктов в один файл в JAXB
Недавно начал разбираться с JAXB. Набросал простой пример. Есть класс Person: @XmlRootElement(name = "person") public class...

Создание динамических события от динамических элементов
Доброго времени суток! В общем беда такая, создаю по циклу, например 10 опендиалогов и 10 баттонов, нужно, чтобы по клику на каждый баттон...

Для динамических массивов А и В подсчитать количество таких k, для которых A[k]=B[k], A[k]>B[k] и A[k]<B[k]
Заданы два динамических массива A и B, каждый из массивов состоит из n целых элементов. Подсчитайте количество таких k, для которых: A=B,...

Альтернатива C++ для динамических библиотек
Это крик души! Здравствуйте. Я избрал Python моим основным языком программирования. И честно, не жалею! Я могу программировать под...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru