У меня есть 1 поток который должен передавать данные в пул других потоков, как можно сделать такую коммуникацию максимально быстро?
Думал сделать список и синхронизацию — но из за синхронизации — будет падать быстродействие, как решить?
А>У меня есть 1 поток который должен передавать данные в пул других потоков, как можно сделать такую коммуникацию максимально быстро? А>Думал сделать список и синхронизацию — но из за синхронизации — будет падать быстродействие, как решить?
можно уменьшить затраты на синхронизацию если группировать данные в пакеты покрупнее, и делать синхронизацию только для пакетов
Принимать решение, что пора завершить пакет -- либо если его размер превысил порог, либо если время истекшее с предыдущего пакета превысило порог.
Здравствуйте, Аноним, Вы писали:
А>Думал сделать список и синхронизацию — но из за синхронизации — будет падать быстродействие, как решить?
может это подойдёт?
А>Заранее спасибо!
Для "спасибо" тут есть кнопки.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Аноним, Вы писали:
А>Всем привет, есть простая проблема:
А>У меня есть 1 поток который должен передавать данные в пул других потоков, как можно сделать такую коммуникацию максимально быстро? А>Думал сделать список и синхронизацию — но из за синхронизации — будет падать быстродействие, как решить?
А>Заранее спасибо!
Давно это было — запамятовал — Был у меня IO
DB>Здравствуйте, Аноним
DB>Если для винды то я когда-то использовал для аналогичной задачки Completion Port.
DB>посмотри на
DB>CreateIoCompletionPort DB>GetQueuedCompletionStatus DB>GetQueuedCompletionStatusEx DB>PostQueuedCompletionStatus