8 (905) 200-03-37 Владивосток
с 09:00 до 19:00
CHN - 1.14 руб. Сайт - 21.13 руб.

Подлинное программирование сервера Multi -Threaded Linux использует сетевую библиотеку Muduo C ++ 978712119282

Цена: 1 129руб.    (¥53.4)
Артикул: 596945871358

Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.

Этот товар на Таобао Описание товара
Продавец:安徽新华书店旗舰店
Рейтинг:
Всего отзывов:0
Положительных:0
Добавить в корзину
Другие товары этого продавца
¥12.9273руб.
¥32677руб.
¥25.8546руб.
¥65.81 391руб.

Основная информация

Название: Linux Multi -Threaded Server Programming использует сетевую библиотеку Muduo C ++

Цена: 89,00 юаней.

Автор: Чен Шуо

Пресса: электронная промышленная пресса

Дата публикации: 2013-01-01

ISBN: 9787121192821

Количество слов:

Номер страницы: 616

Издание: 1

Переплет: мягкая обложка

Открыто: 16

Товарный вес:

Краткое содержание


«Программирование сервера Multi-Threading Linux использует сетевую библиотеку MudUOC ++», в основном рассказывает основную традиционную технологию написания многопоточной программы службы сети TCP на x86-64linux на x86-64linux, которая фокусируется на модели программирования многопоточного сервера с сильной адаптивностью.Это режим написания сетевой программы на основе пользователя в Linux в Linux.Эта книга принимает библиотеку сети Мудуо в качестве примера для объяснения использования этой модели программирования и мер предосторожности.
Цель «программы программирования MultiThreading Services Linux Использование сетевой библиотеки Muduoc ++» состоит в том, что она не дорого.Освоение двух основных примитивов синхронизации может удовлетворить различные многооборотные функциональные потребности синхронизации, а также может написать более полезные средства синхронизации.Освоить процесс межпроцессной связи и многопоточного сетевого программирования модели достаточно, чтобы справиться со ежедневными задачами разработки и написать распределенную систему обслуживания, которая работает во внутренней сетевой среде.

об авторе


Чен ШуоСтепень магистра обычного университета в Пекине, хорошо в многочисленном сетевом программировании C ++ и архитектуре распределенной системы реального времени.Он проработал в ИТ -департаменте Моргана Стэнли в течение 5 лет и занимался разработкой реальной валютной торговли.В настоящее время он работает в крупной интернет -общественности в Силиконовой долине, штат Калифорния, и занимается надежной техникой крупных распределенных систем.Я написал сетевую библиотеку с открытым исходным кодом C ++ Muduo, участвовала в переводе «Код Daquan (2nd Edition)» и «Спецификация программирования C ++ (традиционное издание)», организованная «C ++ Primer (издание 4)» Различные местные технологические конференции.

Каталог


Некоторое многолетнее системное программирование C ++
Сражение объекта жизни
1.1 Когда функция анализа встречается с многопотоковой
1.1.1 Определение безопасности потока
1.1.2 Mutexlock и MutexlockGuard
1.1.3 Безопасной пример потока потока
1.2 Создание объекта простое.
1.3 Разрушение слишком сложно
1.3.1 MUTEX - это не путь
1.3.2 Mutex как член данных не может защитить структуру.
1.4 Как трудно быть безопасным для потоков.
1.5 Что не так с оригинальным указателем.
1.6 artifact shared_ptr/sleed_ptr
1.7 Эпизод: систематически избегать различных ошибок указателя.
1.8 Применить к наблюдателю
1.9 Соберите безопасность потока shared_ptr.
1. Технология и ловушка shared_ptr
1.11 Объектный пруд.
1.11.1 enable_shared_from_this
1.11.2 Слабое восстановление.
1.12 Альтернативное решение
1.13 Опыт и резюме.
1,14 заблуждение наблюдателя.
Глава 2 Эссенция синхронизации потока
2.1 MUTEX (MUTEX).
2.1.1 Используйте только рекурсивный мутекс
2.1.2 мертвый замок
2.2 ConditioVariable.
2.3 Не используйте чтение и записи блокировки и семафоры
2.4 упакованный Mutexlock, Mutexlockguard, Condition
2.5 Реализация Sean Sufe Singleto
2.6 Сон (3) не синхронные слова
2.7 Индукция и резюме.
2.8 Займите shared_ptr для реализации копии на записи
Глава 3 Применимое согласие и модель общего программирования многопоточного сервера
3.1 Процесс и поток.
3.2 Общая модель программирования однопользованного сервера
3.3 Общая модель программирования многопоточного сервера
3.3.1 one loop per thread
3.3.2 БИБЛЕТА.
3.3.3 Рекомендуемый режим
3.4 Межпроцессная связь только использует TCP.
3.5 Применимые случаи многопоточных серверов.
3.5.1 должен использоваться в одном потоке.
3.5.2 Преимущества и недостатки однопользуемых программ.
3.5.3 Применимые сцены многопоточных программ
3.6“ применимые случаи многопоточных серверов” пример толкования и допроса
Глава 4 C ++ Основы системного программирования.
4.1 Выберите исходный поток основного потока.
4.2 Безопасность потока системной библиотеки C/C ++.
4.3 Логотип потока на Linux
4.4 Кодекс создания и разрушения потоков.
4.4.1 pthread_cancel и c ++.
4.4.2 Выход (3) не является потоком -сафе в C ++.
4.5. Хорошо использовать ключевые слова __thread.
4.6 Multi -Thread и IO
4.7 Используйте RAII для установки дескриптора файла.
4.8 Райи и Форк ().
4.9 Multi -Thread и Fork ().
4. Многопользовательский и сигнал
4.11 Linux New System Call Revelation
Глава 5 с высокой эффективностью многократного журнала
5.1 Функциональные требования
5.2 Требования к производительности
5.3 Многоподобный асинхронный журнал
5.4 Другие решения

Часть 2 Библиотека сети Мудуо
Глава 6 Введение в библиотеку сети Мудуо
6.1 Происхождение.
6.2 Установка.
6.3 Структура каталогов
6.3.1 Структура кода
6.3.2 Пример
6.3.3 Модель потока
6.4 Используйте учебник
6.4.1 TCP сетевой программирование. Основная теория.
6.4.2 Реализация сервиса Echo.
6.4.3 Семь шагов для реализации обслуживания пальцев.
6.5 Оценка эффективности
6.5.1 Сравнение пропускной способности пропускной способности Muduo и Boost.asio, Libevent2
6.5.2 Барабанные цветы: по сравнению с эффективностью обработки инцидентов Muduo и Libevent2
6.5.3 Сравнение пропускной способности с Nginx.
6.5.4 Сравнение задержки между Мудуо и Zeromq.
6.6 Подробное объяснение мудюо многоподобной модели.
6.6.1 Решайте только сервер
6.6.2 Общие решения по разработке программы программы сетевой службы.
Глава 7 Пример программирования Muduo
7.1 Пять простых примеров TCP
7.2 Передача файлов
7.3 Boost.Asio's Server.
7.3.1 TCP -точки
7.3.2 Формат сообщения
7.3.
7.3.4 Реализация сервера.
7.3.5 Реализация клиента.
7.4 Проектирование и использование класса буфера Мудуо.
7.4.1 Модель Muduo's IO
7.4.2 Почему необходим буфер приложений в неблокирующем сетевом программировании
7.4.3 Функциональные требования Буфера
7.4.4 Структура данных буфера
7.4.5 Работа буфера.
7.4.6 Другие схемы дизайна.
7.4.7.
7.5 Тип автоматического отраженного сообщения
7.5.1 Две предпосылки использования ProtoBuf в сетевом программировании.
7.5.2. Автоматическое создание объектов сообщений на основе отражения имени типа
7.5.3 Формат передачи Protobuf
7.6 Внедрение кодека и дистрибьютора сообщений Protobuf в Мудуо
7.6.1 Что такое кодек (кодек)
7.6.2 Реализация Protobufcodec.
7.6.3 Что такое использование диспетчера
7.6.4 Комплексное использование Protobufcodec и Protobufdispatcher.
7.6.5 Две реализации ProPoBufDispatcher
7.6.6 Protobufcodec и Protobufdispatcher из чего.
7.7 Ограничьте количество одновременных соединений сервера
7.7.1 Зачем ограничивать количество параллельных соединений
7.7.2 Ограничьте количество соединительных соединений в Мудуо
7.8 таймер.
7.8.1 Время в программе.
7.8.2 Функция времени Linux
7.8.3 Muduo Timer Interface.
7.8.4 Boost.asio Timer Пример
7.8.5 Пример Java Netty
7.9 Измерьте задержку сети и разницу во времени двух машин.
7. Используйте колесо времени, чтобы начать простоя
7..1 Принцип синхронизации
7..2. Реализация и улучшение кода
7.11 Простая служба передачи сообщений.
7.12“ строка и преобразование”
7.13 Socks4a Proxy Server
7.13.1 TCP Relayr
7.13.2 Прокси -сервер Socks4a
7.13.3 N: 1 и 1: N подключить
7.14 Служба ожидания
7.15 Интегрирован с другой библиотекой.
7.15.1 UDNS .
7.15.2 c-ares DNS .
7.15.3 curl .
7.15.4 больше
Глава 8 Дизайн и реализация сетевой библиотеки Muduo
8.0 Eventloop.
8.1 Ключевая структура реактора
8.1.1 Channel class .
8.1.2 Poller class
8.1.3 Изменения EventLoop.
8.2 Timerqueue Timer
8.2.1 TimerQueue class .
8.2.2 Изменения EventLoop.
8.3 EventLoop :: runinloop () функция
8.3.1 Улучшить безопасность потока TimerQueue.
8.3.2 EventLoopThread class
8.4 Внедрение сетевой библиотеки TCP
8.5 Tcpserver принимает новые соединения
8.5.1 TcpServer class
8.5.2 TcpConnectioclass .
8.6 TCPConnectio Отсоединит.
8.7 Данные чтения буфера
8.7.1 TCPConnectio использует буфер в качестве входного буфера.
8.7.2 Buffer :: readfd ()
8.8 TCPConnectio Отправить данные.
8.9 Улучшение TCPConnection
8.9.1 SIGPIPE
8.9.2 TCP без задержки и TCP Keepalive
8.9.3 WriteCompleteCallback и Highwatermarkcallback.
8. Многоподобный Tcpserver.
8.11 Connector .
8.12 TcpClient .
8.13 epoll
8.14 Процедуры испытаний.

Часть 3, часть инженерной практики, разговор
Глава 9 Распределенная система инженерной системы
9.1 Мы находимся в положении технической волны.
9.1.1 Основные трудности распределенных систем
9.1.2 Распределенная система является опасной проблемой.
9.2 Надежность распределенной системы легче.
9.2.1 Программное обеспечение в распределенных системах не требует 7 24 надежных
9.2.2“ может перезапустить процесс в любое время”
9.3 Проектирование соглашения о погружении дифференциального системы
9.4 Логотип процесса в распределенной системе.
9.4.1 Практика ошибок
9.4.2 Правильная практика
9.4.3 Просвещение протокола TCP
9.5 Создайте распределенную программу, которая легко поддерживать.
9.6 Подготовьте эволюцию системы.
9.6.1 Расширяемый формат сообщений
9.6.2 Отрицательный учебник: Формат сообщения ICE.
9.7 Автоматизация регрессионного теста распределенной программы
9.7.1 Единый тест может быть проверен или нет.
9.7.2 Основные точки теста теста распределенной системы
9.7.3 Абстрактные точки зрения распределенных систем
9.7.4 Автоматизированный план регрессионных испытаний.
9.7.5 Другое использование
9.8 Несколько сфер развертывания, мониторинга и управления процессами распределенной системы.
9.8.1 Царство 1: ВСЕ РАССКАЯ РАБОТА.
9.8.2 Realm 2: Используйте разбросанные автоматизированные сценарии и третьи партийные компоненты.
9.8.3 Царство 3: Система управления группой машины, централизованная конфигурация.
9.8.4 Realm 4: Комбинация с службой именования.
Глава глава C ++ Ссылка
.1 Модель компиляции языка C и их причины.
.1.1 Зачем языку C требуется предварительная обработка
.1.2 Модель компиляции языка C.
.2 C ++ Модель компиляции
.2.1 Скомпилируйте в одиночку
.2.2 Предисловие объявления
.3 C ++ Ссылка (связывание).
.3.1 Функция тяжелой нагрузки
.3.2 Встроенная функция.
.3.3 Шаблон
.3.4 Тщеслаковая функция.
.4 Использование файлов заголовков в инженерных проектах
.4.1 вред файла заголовка.
.4.2 Использование использования файлов заголовка
.5 Организационные принципы библиотечных документов в проекте
.5.1 Динамическая библиотека вредна
.5.2 Статическая библиотека не намного лучше
.5.3 Компиляция исходного кода - King
Глава 1 Отражение C ++ объект -ориентированная функция
11.1 Простой дизайн C ++
11.2 Бинарная совместимость библиотеки программы
11.2.1 Что такое бинарная совместимость.
11.2.2 Что такое Abis библиотеки.
11.2.3 Какой из методов в основном безопасен
11.2.4 Отрицательный учебник: com.
11.2.5 Решение
11.3 Избегайте использования виртуальной функции в качестве интерфейса библиотеки
11.3.1 Среда живой библиотеки программ C ++
11.3.2 Две основные цели виртуальной функции в качестве интерфейса библиотеки
11.3.3 Виртуальная функция как недостаток интерфейса
11.3.4 Если система Linux вызвана для достижения метода интерфейса COM
11.3.5, с чем занимается Java
11.4 Рекомендуемый метод интерфейса динамической библиотеки
11.5 Boost :: Functio и Boost :: Bind заменил виртуальную функцию.
11.5.1 Основное использование
11.5.2 Влияние на библиотеку программы
11.5.3 Влияние дизайна программы объекта.
11.6 Цель и ограничение iostream
11.6.1 Форматирование STDIO входное вывод. Недостатки.
11.6.2 Первоначальное намерение дизайна iostream.
11.6.3 IOStream взаимодействие с другими компонентами стандартной библиотеки.
11.6.4 Недостатки в Иостроре в использовании.
11.6.5 недостатки iostream в дизайне.
11.6.6 Выходной поток буфера буфера памяти 300.
11.6.7 Как сделать файлы io.
11.7 Семантика значения и абстракция данных.
11.7.1 Что такое семантическая семантика.
11.7.2 Семантика стоимости и период жизни
11.7.3 Синтез стоимости и стандартная библиотека
11.7.4 Семантика стоимости и язык C ++
11.7.5 Что такое абстракция данных
11.7.6 Языковые средства, необходимые для абстракции данных
11.7.7 Пример абстракции данных
Глава 2 C ++ Опыт Talk
12.1 Обмен переменными с разными или обменом неверно.
12.1.1 Какой код будет генерировать компилятор отдельно.
12.1.2 Почему короткий код не быстр
12.2 НЕ ПРИВОДИТЕ ВСЕГО СИЛЕЙ :: Оператор new ()
12.2.1 Основные требования к управлению памятью.
12.2.2 Причины :: Оператор new ().
12.2.3 :: Два метода тяжелой нагрузки оператора New ().
12.2.4 Реальная среда развития
12.2.5 Research :: Operator New () Dohaies.
12.2.6 Решение: замените Malloc ()
12.2.7 Является ли отдельная перегрузка класса :: Есть ли какие -либо проблемы с оператором New ()?
12.2.8. Необходимо ли самостоятельно настроить распределение памяти
12.3 Удаление и остаток символического целого числа.
12.3.1 Как сказать языковой стандарт
12.3.2 C/C ++ Производительность компилятора.
12.3.3 Правила для других языков
12.3.4 Код интерпретатора языка сценария.
12.3.5 Аппаратная реализация
12.4 Их
12.4.1 Инъекция зависимости системной функции.
12.4.2.
12.5 Тщательно используйте анонимное пространство имен.
12.5.1 Два использования статических ключевых слов на языке C.
12.5.2 Четыре использования статических ключевых слов на языке C ++
12.5.3 Анонимные недостатки пространства имен.
12.5.4 Метод замены
12.6. Формат кода, который способствует управлению версиями, принят.
12.6.1 Формат кода для Diff Friendly
12.6.2 Стиль кода для Grep Friendly.
12.6.3 Все для эффективности.
12.7 Еще раз исследуйте STD :: String.
12.7.1 Прямая копия (нетерпеливая копия).
12.7.2 Копия на записи.
12.7.3 Оптимизация коротких строк (SSO)
12.8 Используйте алгоритм STL, чтобы легко решить несколько вопросов тестирования алгоритма
12.8.1 Используйте next_permution () для создания расположения и комбинации
12.8.2 Используйте уникальный () для удаления непрерывных зазоров.
12.8.3 Используйте Make, Push, Pop} _Heap (), чтобы реализовать многоэтажный дом
12.8.4 Используйте раздел () для реализации“”
12.8.5 Используйте Lower_Bound (), чтобы найти города, которые принадлежат IP -адресу.

Часть 4 Приложение
Приложение А разговоры о опыте обучения сетевым программированию
Приложение B Изучение C ++ из «C ++ Primer (4 -е издание)»
Приложение C обзор повышения
Приложение D о TCP -параллельных вопросах и тестах

Выбор редактора


Много лет написания сущности программы опыта многопоточного сервера в производственной среде и демонстрации формальной практики современной C ++ для написания многопоточных серверов TCP в многократную эпоху