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

Linux Multi -Threaded Server Programming использует Muduo C ++ сетевой библиотеки Linux Операционную систему от входа до опытных книжных книжных книжных книжных книжных книг

Цена: 1 049руб.    (¥58.3)
Артикул: 559059426681

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

Этот товар на Таобао Описание товара
Продавец:华心图书专营店
Адрес:Шанхай
Рейтинг:
Всего отзывов:0
Положительных:0
Добавить в корзину
Другие товары этого продавца
¥ 52 44.7804руб.
¥169.83 054руб.
¥41.9754руб.
¥ 159.8 123.52 221руб.


Multi -Threaded Server Программирование: используйте сетевую библиотеку Muduo C ++
           Ценообразование89.00
ИздательЭлектронная промышленная пресса
Версия1
Опубликованная датаЯнварь 2013
формат16
авторЧен Шуо
УкраситьОплата в мягкой обложке
Количество страниц616
Число слов
Кодирование ISBN9787121192821


«Программирование сервера Linux использует сетевую библиотеку Muduoc ++» в основном описывает основную традиционную технологию написания многопоточных программ сервисного обслуживания TCP на x86-64linux на x86-64linex.Это режим написания сетевой программы на основе пользователя в Linux в Linux.Эта книга принимает библиотеку сети Мудуо в качестве примера для объяснения использования этой модели программирования и мер предосторожности.

Цель «Multi -Threading Server -программирование Linux использует сетевую библиотеку Muduoc ++» состоит в том, что она гораздо дороже.Освоение двух основных примитивов синхронизации может удовлетворить различные многооборотные функциональные потребности синхронизации, а также может написать более полезные синхронные средства.Основное процесс коммуникации и многочисленного сетевого программирования модели достаточно, чтобы справиться с повседневными задачами разработки и написания распределенной системы обслуживания, которая работает во внутренней сетевой среде компании.



DY Part C ++ Многопорядованное системное программирование

DY SEAL НИДА ЗАБОЧКА Управление периодом срока службы срока службы

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.10 Технология и ловушка 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 переменная условия.

2.3 Не используйте чтение и записи блокировки и семафоры

2.4 упакованный Mutexlock, Mutexlockguard, Condition

2.5. Реализация SAFE SIGHTLON

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.10 Многопорядочный и сигнал

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 Chat.

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 Почему буфер приложений в сетевом программировании N-блокировки.

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.10 Используйте временное колесо, чтобы начать бесплатное соединение

7.10.1 Принцип ГРМ -колеса

7.10.2 Реализация и улучшение кода

7.11 Простая служба передачи сообщений.

7.12“Преобразование строки”Тест на соединение и автоматизацию

7.13 Socks4a Proxy

7.13.1 TCP Relayr

7.13.2 Socks4a Proxy

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 TcpConnection class .

8.6 TCPConnection Отключить.

8.7 Данные чтения буфера

8.7.1 TCPConnection использует буфер в качестве входного буфера.

8.7.2 Buffer :: readfd ()

8.8 TCPConnection Отправить данные.

8.9 Улучшение TCPConnection

8.9.1 SIGPIPE

8.9.2 TCP без задержки и TCP Keepalive

8.9.3 WriteCompleteCallback и Highwatermarkcallback.

8.10 Многоподобный 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: Сочетание управления машинами с службой именования.

DY 0 ГЛАВА C ++ СОЕДИНЕНИЯ

10.1 Модель компиляции языка C и его причина.

10.1.1 Почему C, требующий предварительной обработки языка C

10.1.2 Модель компиляции языка C.

10.2 Модель компиляции C ++

10.2.1 Скомпилируйте сингл.

10.2.2 Предисловие объявления

10.3 C ++ Ссылка (связывание).

10.3.1 Функция Перезагрузка

10.3.2 Встроенная функция.

10.3.3 Шаблон

10.3.4 Художественная функция.

10.4 Использование файлов заголовка в проекте Project

10.4.1 вред файла заголовка.

10.4.2 Использование использования файлов заголовка

10.5 Принципы организации библиотечных документов в проекте проекта

10.5.1 Динамическая библиотека вредна

10.5.2 Статическая библиотека не намного лучше

10.5.3 Компиляция исходного кода - King

DY 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 :: Function и 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 Пример абстракции данных

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