|
|
Àâòîðèçàöèÿ |
|
|
Ïîèñê ïî óêàçàòåëÿì |
|
|
|
|
|
|
|
|
|
|
Duffy J. — Concurrent Programming on Windows |
|
|
Ïðåäìåòíûé óêàçàòåëü |
ConcurrentQueue<T> 928—929
ConcurrentStack<T> 929
Condition variables, .NET Framework monitors 68—70 309—312
Condition variables, C++ blocking queue with 644—646
Condition variables, CLR monitors 272
Condition variables, defined 255
Condition variables, overview of 304
Condition variables, Windows Vista 304—309
const modifier, single assignment 35—38
CONTEXT data structure 151—152 437 440—441
Context switches, defined 82
Context switches, expense of 768 884
Context switches, fibers reducing cost of 431
Context switches, I/O operations and 785 787 810 824
Context switches, spin locks and 769—770
Context, defined 82
ContextSwitch, building UMS, dispatching work 461—463
ContextSwitch, building UMS, overview of 464—470
ContextSwitch, building UMS, queueing work 464—470
ContextSwitchDeadlock 575
Continuation Passing Style (CPS) 65—66 412—413
Continuations, task parallel library 900—902
ContinueWith methods, TPL 900—902
Continuous iterations 663—667
control flow invariants 548
Control synchronization 60—73
Control synchronization, condition variables and see "Condition variables"
Control synchronization, coordination and 60—61
Control synchronization, defined 14
Control synchronization, events and 66—68
Control synchronization, message passing 71—73
Control synchronization, monitors and 68—70
Control synchronization, primitives and 255
Control synchronization, state dependence among threads 61—62
Control synchronization, structured parallelism and 70—71
Control synchronization, waiting for something to happen 63—66
Convention, enforcing isolation 32
ConvertFiberToThread 442
ConvertThreadToFiber(Ex) 438—439 442—444
Convoys, lock 603—605
Cooperative search algorithms 719
Coordination see "Control synchronization"
Coordination and Concurrency Runtime see "CCR (Coordination and Concurrency Runtime)"
Coordination containers 640—650
Coordination containers, C# blocking/bounded queue with multiple monitors 646—650
Coordination containers, producer/consumer data structures 641—642
Coordination containers, simple C# blocking queue with critical sections and condition variables 644—646
Coordination containers, simple C# blocking queue with monitors 642—644
Correctness hazards, data races 546—555
Correctness hazards, data races, benign 553—555
Correctness hazards, data races, composite actions 550—553
Correctness hazards, data races, inconsistent synchronization 549—550
Correctness hazards, data races, overview of 546—549
Correctness hazards, locks and process shutdown 561—571
Correctness hazards, locks and process shutdown, managed code and shutdown 569—571
Correctness hazards, locks and process shutdown, overview of 561—563
Correctness hazards, locks and process shutdown, Win32: weakening and termination 563—568
Correctness hazards, overview of 546
Correctness hazards, recursion and reentrancy 555—561
CountdownEvent 915—917
Counting semaphores 42
CoWaitForMultipleHandles API 186 202—204 207
CPS (Continuation Passing Style) 65—66 412—413
CPU affinity, assigning affinity 173—176
CPU affinity, microprocessor architecture and 178—179
CPU affinity, overview of 171—173
CPU affinity, round robin affinitization 176—178
CreateEvent(Ex) 228—230
CreateFiber(Ex) 435—436
CreateMutex(Ex) 212—216
CreateRemoteThread 95—96
CreateSemaphore(ex) APIs 220—222
CreateThread, C programs 96—98
CreateThread, creating threads in .NET 99
CreateThread, creating threads in Win32 90
CreateThread, example of 92—94
CreateThread, failure of 92
CreateThread, parameters 90—92
CreateThread, specifying stack changes 132
CreateThread, thread suspension 169
CreateThread, triggering thread exit 103
CreateThreadPool, Vista 344
CreateThreadPoolCleanupGroup, Vista 345—347
CreateThreadpoolIo, Vista 334—335
CreateThreadpoolTimer, Vista 330—331 333
CreateThreadpoolWait, Vista 336—337
CreateThreadpoolWork, Vista 326—327 329—330
CreateTimerQueueTimer, legacy thread pool 356—358
CreateWaitableTimer(Ex) 235—236
CreateWindow(Ex) 195
CREATE_SUSPENDED flag 153 169
Critical finalizers 300
Critical paths, speedup and 764—765
Critical regions, as binary semaphores 42
Critical regions, as fences 484—485
Critical regions, avoiding deadlocks with 576
Critical regions, coarse vs. fine-grained 45—47
Critical regions, correctly built 478
Critical regions, correctness hazards 551
Critical regions, defined 21 40
Critical regions, eliminating data races with 40—42
Critical regions, failure of in modern processors 59
Critical regions, implementing 47—48
Critical regions, implementing with critical sections see "Critical sections Win32"
Critical regions, patterns of usage 43—45
Critical sections, C++ blocking queue with 644—646
Critical sections, CLR monitors 272
Critical sections, Win32 256—271
Critical sections, Win32, allocating 256—257
Critical sections, Win32, debugging ownership information 270—271
Critical sections, Win32, defining 254
Critical sections, Win32, entering and leaving 260—266
Critical sections, Win32, fibers and 448—449
Critical sections, Win32, implementing critical regions 256
Critical sections, Win32, initialization and deletion 257—259
Critical sections, Win32, integration with Windows Vista condition variables 304—309
Critical sections, Win32, low resource conditions 266—270
Critical sections, Win32, overview of 256
Critical sections, Win32, process shutdown and 563—568
Critical sections, Win32, Vista thread pool completion tasks 350
CRITICAL_SECTION see "Critical sections Win32"
CRT (C Runtime Library) 90 96—98
CSP (Communicating Sequential Processes) systems 71—72
Current.ManagedThreadld 879
CurrentThread 101
Data access patterns 677—678
Data dependencies 485—486
Data ownership 33—34
Data parallelism 659—684
Data parallelism, concurrent program structure 6—7
Data parallelism, continuous iterations 663—667
Data parallelism, defined 657—658
Data parallelism, dynamic decomposition 669—675
Data parallelism, loops and iteration 660—661
Data parallelism, mapping over input data as parallel loops 675—676
Data parallelism, nesting loops and data access patterns 677—678
Data parallelism, overview of 659—660
Data parallelism, prerequisites for loops 662
Data parallelism, reductions and scans 678—681
Data parallelism, sorting 681—684
Data parallelism, static decomposition 662—663
Data parallelism, striped iterations 667—669
Data publication 15—16
Data races see "Race conditions (data races)"
Data synchronization 40—60
Data synchronization, coarse vs. fine-grained regions 45—47
Data synchronization, defined 14 38—40
Data synchronization, Dekker's and Dijkstra's algorithm 50—53
Data synchronization, general approaches to 14
Data synchronization, hardware compare and swap instructions 55—58
| Data synchronization, implementing critical regions 47—48
Data synchronization, Lamport's bakery algorithm 54—55
Data synchronization, mutual exclusion see "Critical sections Win32" "Locks CLR"
Data synchronization, overview of 40—42
Data synchronization, patterns of critical region usage 43—45
Data synchronization, Peterson's algorithm 53—54
Data synchronization, primitives 254—255
Data synchronization, reader writer locks see "RWLs (reader/writer locks)"
Data synchronization, reordering, memory models and 58—60
Data synchronization, semaphores 42
Data synchronization, strict alternation 49—50
Dataflow parallelism, futures 689—692
Dataflow parallelism, overview of 689
Dataflow parallelism, promises of 693—695
Dataflow parallelism, resolving events to avoid blocking 695—698
Deadlock from low maximum threads 382—385
Deadlock in library code 874—875
Deadlock, avoiding 575—589
Deadlock, avoiding, apartment threading model 197—198
Deadlock, avoiding, overview of 575—577
Deadlock, avoiding, The Banker's Algorithm 577—582
Deadlock, avoiding, with DllMain routine 116—117
Deadlock, avoiding, with lock leveling 581—589 875—876
Deadlock, concurrency causing 10—11
Deadlock, detecting 589—597
Deadlock, detecting, overview of 589—590
Deadlock, detecting, with timeouts 594
Deadlock, detecting, with Vista WCT 594—597
Deadlock, detecting, with Wait Graph Algorithm 590—594
Deadlock, examples of 572—575
Deadlock, fine-grained locking for FIFO queues and 617—621
Deadlock, implementing critical regions without 47
Deadlock, livelock vs. 601—603
Deadlock, onAppDomain agile objects 279—281
Deadlock, overview of 572
Deadlock, ReaderWriterLockSlim and 298
Deadly embrace see "Deadlock"
DeallocationStack field, TEB 149
Debugging, as concurrency problem 11
Debugging, CLR monitor ownership 285—287
Debugging, CLR thread pool 386—387
Debugging, critical sections 270—271
Debugging, fibers 433—434
Debugging, kernel objects 250—251
Debugging, legacy RWL ownership 303—304
Debugging, SRWLs 293
Debugging, symbols 139
Debugging, thread suspension in 170
Debugging, user-mode thread stacks 127—130
Debugging, using CLR managed assistant for 575
Debugging, Vista thread pool 353
Declarative, LINQ as 910
Deeply immutable objects 34
Dekker's algorithm, antipattern in 540—541
Dekker's algorithm, Dijkstra's algorithm vs. 51—53
Dekker's algorithm, failure of in modern processors 59
Dekker's algorithm, overview of 50—51
Dekker's algorithm, Peterson's algorithm vs. 53—54
Delay-abort regions 110—111
Delays, from low maximum threads 385—386
Delegate types 418
Deletion of critical sections 257—259
Deletion of fibers 441—442
Deletion of legacy thread pool timer threads 358—359
Dependency, among threads 61—62
DestroyThreadpoolEnvironment, Vista 343
Dictionary (hashtable), building 626—631
Dijkstra's algorithm 51—53
Dijkstra, Edsger, algorithm of 51—53
Dijkstra, Edsger, dining philosophers problem 573—574
Dijkstra, Edsger, The Banker's Algorithm 577—581
Dining philosophers problem 573—574
DisassociateCurrentThreadFromCallback, Vista 347
DispatcherObject 840—846
Dispose overload, CLR 374
DllMain function, creating threads 153
DllMain function, initialization/deletion of critical regions 259
DllMain function, overview of 115—117
DllMain function, performing TLS functions 119
DLL_PROCESS_ATTACH 115 119—120 153
DLL_PROCESS_DETACH 115 119—120
DLL_THREAD_ATTACH 115—116 119—120 153
DLL_THREAD_DETACH 116 119—120 154
DNS resolution 419
Document matching 718
Documentation on blocking 884
Documentation on library locking model 870
DocumentPaginator 427
Domain parallelism 8—9
DoNotLockOnObjectsWithWeakldentity 281
DoSingleWait function 194—195
Double-checked locking, lazy initialization in .NET 521—527
Double-checked locking, lazy initialization in VC++ 528—536
Double-checked locking, overview of 520
DPCs (deferred procedure calls) 84—85
DuplicateHandle 94
dwDesiredAccess 213
dwFlags argument 199—201 437 439
dwStackSize parameter, CreateThread API 91 132
dwTimeout 190
dwWakeMask argument 199
Dynamic (on demand) decomposition 669—675
Dynamic (on demand) decomposition for known size iteration spaces 669—672
Dynamic (on demand) decomposition for unknown size iteration spaces 669—672
Dynamic (on demand) decomposition, defined 663
Dynamic (on demand) decomposition, overview of 669
Dynamic composition, recursive locks 559
Dynamic TLS 118—120 122—123
ECMA Common Language Infrastructure 516—518
EDITBIN.EXE command 132
Efficiency, measuring 761—762
Efficiency, natural scalability vs. speedups 760—761
Efficiency, performance improvements due to 756
End method, APM 416
End prefix, APM 399
EndFoo, APM 401—407
EndInvoke 838—839
EndThreadAffinity 880
EnterCriticalSection, ensuring thread always leaves critical section 262
EnterCriticalSection, entering critical section 260—261
EnterCriticalSection, fibers and critical sections 448—449
EnterCriticalSection, leaving unowned critical section 261
EnterCriticalSection, low resource conditions and 267—268
EnterCriticalSection, process shutdown 563—564
EnterCriticalSection, setting spin count 264
Entry, APC 208
Environment.Exit, CLR 113—114 569—571
Environment.FailFast, CLR 114 141—142
Environments, Vista thread pool 342—347
Erlang language 720
ERROR_ALREADY_EXISTS 213 222
ERROR_ALREADY_FIBER 439
ERROR_FILE_NOT_FOUND 215
ERROR_OUT_OF_MEMORY 258 260 266
ERROR_STACK_OVERFLOW 134
Escape analysis 19
Essential COM (Box) 198
ETHREAD 145—146 152
Event handlers, asynchronous I/O completion 802—805
Event signals, missed wake-ups and 600—601
Event-based asynchronous pattern 421—427
Event-based asynchronous pattern in .NET Framework 426—427
Event-based asynchronous pattern, basics 421—424
Event-based asynchronous pattern, cancellation 425
Event-based asynchronous pattern, defined 400
Event-based asynchronous pattern, progress reporting/incremental results 425—426
Events, blocking queue data structure with 243—244
Events, completing asynchronous operations with 422
Events, control synchronization and 66—68
EventWaitHandle 231
|
|
|
Ðåêëàìà |
|
|
|