1 | |||||||
Storage durations28.07.2016, 20:27. Показов 2274. Ответов 32
Метки нет (Все метки)
Страшно обилие реализаций абстракции и правил их применения Лямбды, насколько я помню - это объекты (анонимные функт
0
|
28.07.2016, 20:27 | |
Ответы с готовыми решениями:
32
Дублируются файлы в папках и в /storage/emulated/0 и /storage/emulated/legacy — почему? File Storage Local storage Internal storage |
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
|
|
28.07.2016, 20:29 | 2 |
Да.
Но ведь это никакое не обилие, все работает в старых рамках: см. storage duration. Почему лямбды рассматриваются тобой отдельно? Ведь ты любой объект можешь так создать.
1
|
28.07.2016, 20:33 [ТС] | 3 |
Потому что я
0
|
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
|
||||||||||||||||
28.07.2016, 20:41 | 4 | |||||||||||||||
Сообщение было отмечено Kastaneda как решение
Решение
Эм. Честно говоря это очень странное "везде"...
Вот примеры:
0
|
28.07.2016, 20:45 [ТС] | 5 |
DrOffset, офигеть! Кстати, начинаю припоминать, что и подобное читал... Но из-за отсутствия практики применения эта информация быстро выветрилась из оперативной памяти - типа автоматической области видимости: с глаз долой - из
0
|
47 / 47 / 31
Регистрация: 02.04.2016
Сообщений: 312
|
|
28.07.2016, 21:21 | 7 |
поподробнее можно про это? просто
если foo() будет работать в дополнительном потоке - все равно поток закроется позже чем деструктор в конце функции,
а будет (наверно) жить даже после закрытия потока с foo(). можно на примере кода это посмотреть =)
0
|
28.07.2016, 21:34 | 8 | |||||
2
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
28.07.2016, 22:08 | 9 |
Kastaneda, а вы использовали их? Есть какой-то супер профит или проблема которую можно решить только с ними.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
28.07.2016, 22:18 | 10 | |||||
например - логгер в многопоточной среде.
логгер сам по себе - сингелтон:
тогда пришлось бы всякие мутексы использовать. и это приводило бы к просадке производительности. ну или пришлось бы отказаться от глобальной переменной.
1
|
28.07.2016, 22:25 | 11 |
На практике не приходилось, просто необходимости не было.
Думаю безусловно есть, сходу пример придумать не могу, мозги спят уже, пол третьего ночи)
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
28.07.2016, 22:37 | 12 |
hoggy, разве объект log не пишет в файл и тем самым хоть объект защищён, но доступ к файлу врядли многопоточный.
0
|
47 / 47 / 31
Регистрация: 02.04.2016
Сообщений: 312
|
|
28.07.2016, 22:42 | 14 |
Вот думаю при написании игр неплохо сэкономит ресурсы железа(гонять одни и те же данные по множеству функций даже по ссылкам или указателям, затрачивает память - эти указатели помещаются в стек. Использовать глобальные переменные, и работать с ними из функций - немного уменьшает затраты памяти, но усложняет написание многопоточного приложения(одни и те же глобальные переменные будут считаться в разных потоках и ничего хорошего из этого не выйдет), а тут "Эврика" - возможность создать свои "глобальные" переменные для каждого потока).
Может я конечно и не прав...
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
28.07.2016, 22:44 | 15 |
Может? Как по мне очевидный пуш палки в колесо
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
28.07.2016, 23:04 | 16 | |||||
это от реализации зависит.
что мешает каждому треду лить в свой собственный файл, например? мне вообще вот такая реализация нравится: на каждый тред лог подымает отдельный процесс. и сливает данные этому процессу. в случае гибели приложения, порожденные таким образом процессы остаются в живых. и переданные данные не теряются. далее процессы доставляют полученные данных в базу данных. такой логгер работает быстро. и позволяет фиксировать очень много данных. Добавлено через 17 минут да это как раз таки не проблема. для этого даже паттерн существует: "атомарный вывод данных" проблема в том, что атомарный вывод - это на самом деле анти-паттерн. потому что провоцирует бешенную конкуренцию за общий ресурс, из-за чего возникает узкое горлышко: http://rextester.com/CRYH17410
нет. вы именно что правы. в этом вся суть идеи - глобальные переменные, свои для каждого потока.
1
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
|
29.07.2016, 10:01 | 19 |
hoggy, берём на вооружение данную обёртку над потоком. Надо было для демонстрации потоки при старте "усыпить" и разбудить "одновременно", например
atomic_bool . А то поток создаётся дольше чем выполняется, т.е. к моменту запуска предыдущий уже своё отработал.По поводу thread_local . Во многих библиотеках (как правило на Си), нужно производить некую инициализацию, при чём для каждого потока отдельно, сразу захотелось завернуть эту инициализацию в конструктор некого класса, скажем SomeLibThreadContext , и засунуть его в TLS через thread_local. Но не тут-то было... мало того что в mvc13 нет такого ключевого слова (__declspec(thread) вместо него), так и использовать можно только POD типы.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
29.07.2016, 13:49 | 20 |
0
|
29.07.2016, 13:49 | |
29.07.2016, 13:49 | |
Помогаю со студенческими работами здесь
20
Local storage Local Storage Intel Rapid Storage Mass storage class Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |