Merge pull request #6121 from GitFuture/master

Translating... Concurrent Servers Series
This commit is contained in:
Ezio 2017-10-11 14:33:46 +08:00 committed by GitHub
commit 68416a1092
3 changed files with 7 additions and 0 deletions

View File

@ -1,6 +1,8 @@
[Concurrent Servers: Part 1 - Introduction][18]
============================================================
GitFuture is Translating
This is the first post in a series about concurrent network servers. My plan is to examine several popular concurrency models for network servers that handle multiple clients simultaneously, and judge those models on scalability and ease of implementation. All servers will listen for socket connections and implement a simple protocol to interact with clients.
All posts in the series:

View File

@ -1,5 +1,8 @@
[Concurrent Servers: Part 2 - Threads][19]
============================================================
GitFuture is Translating
This is part 2 of a series on writing concurrent network servers. [Part 1][20] presented the protocol implemented by the server, as well as the code for a simple sequential server, as a baseline for the series.
In this part, we're going to look at multi-threading as one approach to concurrency, with a bare-bones threaded server implementation in C, as well as a thread pool based implementation in Python.

View File

@ -1,6 +1,8 @@
[Concurrent Servers: Part 3 - Event-driven][25]
============================================================
GitFuture is Translating
This is part 3 of a series of posts on writing concurrent network servers. [Part 1][26] introduced the series with some building blocks, and [part 2 - Threads][27] discussed multiple threads as one viable approach for concurrency in the server.
Another common approach to achieve concurrency is called  _event-driven programming_ , or alternatively  _asynchronous_  programming [[1]][28]. The range of variations on this approach is very large, so we're going to start by covering the basics - using some of the fundamental APIs than form the base of most higher-level approaches. Future posts in the series will cover higher-level abstractions, as well as various hybrid approaches.