Index

As this ebook edition doesn't have fixed pagination, the page numbers below are hyperlinked for reference only, based on the printed edition of this book.

A

anomalies

debugging 184-186

asynchronous pipeline 96-98

atomicity 11, 15

atomic memory operations 161

compare and swap 163, 164

memory guarantees 161-163

atomic operation 13

atomics, practical uses

cancellations 168

change, detecting 169, 170

counters 165

heartbeat 165

progress meter 165-168

B

backend services 135-140

concurrency, limiting 143, 144

containerized backend services 137

HTTP and gRPC services 135

results, collecting 140-143

work, distributing 140-143

C

channels 30-43

closing 33

declaring 31-35

unbuffered channel 33

closure 28

as goroutines 29, 30

Coffman conditions 16

comma-separated values (CSV) 93

Communicating Sequential Processes (CSP) 2

compare-and-swap (CAS) operation 163, 164

concurrency 1-5

condition variable 52-56

Broadcast operation 52

Signal operation 52

Wait operation 52

context 133, 134

cancelations 130, 131

timeouts 133

context.Context object 130

convert 94

cooperative threading 7

counters 165

critical section 14

D

data race 13, 14

data streaming 144-154

deadlock 16, 17

debugging concurrent programs 10

dining philosophers problem 5, 6, 73-79

E

encode 94

error handling 109-114

in pipelines 115

in servers 116

F

failures

detecting 177-184

healing 177-184

fan-in 93, 98-102

with ordering 103-107

fan-out 93, 98-102

first-in, first-out (FIFO) 31

G

Go concurrency primitives, synchronization characteristics

atomic memory operations 66

channels 63, 64

goroutines 62

mutexes 65

package initialization 61, 62

sync.Map 66-68

sync.Once 67, 68

WaitGroup 68

goroutines 23, 24

creating 24, 25

running 26, 27

H

happened-before relationship 60

between, memory operations 58-61

heartbeats 126-128

heartbeat utility 165

L

livelock 19, 20

M

memory barrier 9

memory guarantees

of atomic memory operations 161-163

memory model 58

necessity 57, 58

message passing

versus shared memory 8-10

multiple streams

dealing with 154-159

mutex 44-46

functionality 47-49

using 15, 44

mutual exclusion property 14

N

net/http/pprof package 177

non-preemptive threading 6

Non-Uniform Memory Access (NUMA) system 8

P

panic 117-120

parallelism 1-5

parse 94

pipeline 93-95

error handling 115

pipeline stages

convert 94

encode 94

parse 94

preemptive threading 6

producer-consumer problem 69-73

progress meter 165

R

race condition 11-13

rate limiting 79-85

request multiplexing 137

runtime/pprof package 177

S

scheduler 24

scope 28

select statement 38, 44

semaphore 143

sequenced-before relationship 58

servers

error handling 116

shared acct.Mutex 15

shared memory

versus message passing 8-10

SlowFunc function 178

stack traces

reading 172-177

starvation 17-19

streaming 145

synchronizing read operations 59

synchronizing write operations 59

sync.Mutex 14

T

thread 24

versus goroutines 25

Thread 1 30

Thread 2 30

Thread 3 30

thread state diagram 7

tickers

using 124-126

timeout 126

timers

stopping 123, 124

using 121-123

time-sharing 6

token bucket algorithm

for rate limiting 79

U

unbuffered channel 33

using 34, 35

Uniform Memory Access (UMA) system 8

W

wait group 49-52

using 50

worker pool 87-93

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset