Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 08.03.2018, 22:21   #1
TimurK
Новичок
 
Регистрация: 14.03.2016
Сообщений: 3
Репутация: 10
По умолчанию Запись данных из двух отдельных потоков в один файл

Как реализовать запись данных из двух отдельных потоков в один файл? Мне кажется что проще с использовать WinAPI, но не имею представления как это сделать? Заранее спасибо!
TimurK вне форума   Ответить с цитированием
Старый 10.03.2018, 11:39   #2
Slym
Профессионал
 
Регистрация: 07.12.2011
Адрес: Siberia
Сообщений: 1,008
Репутация: 687
По умолчанию

1. Буфер определенной глубины
2. Потоки пишут в буфер, блокируясь только при превышении глубины...
3. Поток "писатель" - ждет буфер и пишет в файл...

либо в лоб - критическая секция на запись
__________________
Не стесняемся, плюсуем!
Slym вне форума   Ответить с цитированием
Старый 13.03.2018, 17:42   #3
Xo66um
Форумчанин
 
Регистрация: 11.05.2013
Сообщений: 154
Репутация: 51
По умолчанию

Если целостность записываемых данных не важна, то асинхронная запись вполне решает задачу, главное - чтобы файл не был заблокирован (был доступен для записи, и чтобы рабочие потоки во время работы его не занимали).

Если данные необходимо хоть как-то синхронизировать, то нужно больше информации.
Xo66um вне форума   Ответить с цитированием
Старый 13.03.2018, 21:48   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 890
Репутация: 627
По умолчанию

Цитата:
Сообщение от Xo66um Посмотреть сообщение
Если целостность записываемых данных не важна
Напомнило анекдот про машинистку, которая печатала 500 ударов в минуту..
Правда, на листе при этом ерунда какая-то выходила
Black Fregat вне форума   Ответить с цитированием
Старый 16.03.2018, 11:48   #5
DeveloperC
 
Регистрация: 24.02.2018
Сообщений: 7
Репутация: -39
По умолчанию

2 пишущих потока + их синхронизация + FileMapping (для скорости и чтобы избежать блокировки записи в файл)
DeveloperC вне форума   Ответить с цитированием
Старый 16.03.2018, 12:39   #6
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,427
Репутация: 1667
По умолчанию

Цитата:
Сообщение от DeveloperC Посмотреть сообщение
чтобы избежать блокировки записи в файл
Да? Это как?
waleri на форуме   Ответить с цитированием
Старый 18.03.2018, 03:45   #7
DeveloperC
 
Регистрация: 24.02.2018
Сообщений: 7
Репутация: -39
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Да? Это как?
Читаем мат часть про проекции файлов
тыц
http://delphikingdom.com/asp/viewite...513&mode=print
дрынц
https://books.google.com/books?id=nV...%D0%BC&f=false

Последний раз редактировалось DeveloperC; 18.03.2018 в 03:48.
DeveloperC вне форума   Ответить с цитированием
Старый 18.03.2018, 05:03   #8
Пепел Феникса
Модератор
Заслуженный модератор
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 21,006
Репутация: 3402

icq: 446843180
skype: phoenix_proger
По умолчанию

так которую блокировку решает мапинг?
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 18.03.2018, 13:06   #9
DeveloperC
 
Регистрация: 24.02.2018
Сообщений: 7
Репутация: -39
По умолчанию

Файловая проекция - не есть файл, далее, к примеру посмотрите MSDN
DeveloperC вне форума   Ответить с цитированием
Старый 18.03.2018, 14:58   #10
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,427
Репутация: 1667
По умолчанию

Цитата:
Сообщение от DeveloperC Посмотреть сообщение
Файловая проекция - не есть файл
А что, доступ к памяти можно делать без блокировок?
waleri на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ввод данных текстовых данных например (12ав23у) с клавиатуры и запись(сохранение) в файл на С:\ zippa Visual C++ 18 14.11.2016 19:03
Консолидация отдельных полей отдельных файлов на один лист Paramount Microsoft Office Excel 15 30.01.2013 17:41
C++. Запись двух/трехмерного массива в файл. Noyabr Помощь студентам 0 21.01.2012 11:51
Копироване данных из двух листов в один. kola672 Microsoft Office Excel 13 20.08.2010 02:00
Запись в один файл большого количества информации pregmatch Общие вопросы C/C++ 5 09.03.2009 15:09


00:10.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru