Operating System Overhead (Cont) Maybe multi-threading is better? Problem - Inter-thread communications costs. Usage of central data structures requires thread synchronization, which also costs something. Solution 1: use multi-threading mostly when no client-to-client forwarding is required. Solution 2: access globally-used data structures in one big copy operation, rather then in many small read operations. Solution 3: use 'one writer - multiple readers' locks wherever possible.