|
|
Àâòîðèçàöèÿ |
|
|
Ïîèñê ïî óêàçàòåëÿì |
|
|
|
|
|
|
|
|
|
|
Duffy J. — Concurrent Programming on Windows |
|
|
Ïðåäìåòíûé óêàçàòåëü |
Exception handling with contexts 152
Exception handling, parallelism and 721—729
Exceptions 721—729
Exceptions, aggregating multiple 724—729
Exceptions, lock reliability and 875
Exceptions, marshaling across threads 721—724
Exceptions, overview of 721
EXCEPTION_CONTINUE_SEARCH 106
EXCEPTION_EXECUTE_HANDLER 106
Exchange, 128—bit compare 500—502
Exchange, compare and 496—499
Exchange, interlocked operations 493—496
executeOnlyOnce, CLR thread pool 375—376
Execution order 480—484
Execution, Windows threads 81—82
ExecutionContext 839
exit/_exit function 113
ExitProcess, hazards of using 563
ExitProcess, terminating threads in Win32 113
ExitProcess, unhandled exceptions and 104
ExitThread, defined 103
ExitThread, overview of 107—109
ExitThread, specifying return code at termination 94
Explicit threading 87—88
Exponential backoff, in spin waiting 770
Facial recognition 718
FailFast 114
Fair locks in newer OSs 217 605
Fair locks, exacerbating convoys 604
Fair locks, FIFO data structure 185 605
Fairness, in critical regions 47
False contention 615
Fences see "Memory fences"
Fiber local storage (FLS) 430 445—447
Fiber user-mode stacks 130
Fiber-mode, CLR and SQL Server 86—87
FiberBlockinglnfo, UMS 455—459
FiberPool, building UMS see "UMS (user-mode scheduler)"
FiberPool, data structures 455—459
FiberPool, dispatching work 461
FiberPool, thread and fiber routines 459—460
Fibers 429—474 see building"
Fibers, advantages of 431—433
Fibers, CLR and 449—453
Fibers, converting threads into 438—439
Fibers, creating new 435—438
Fibers, deleting 441—442
Fibers, determining whether threads are 439—440
Fibers, disadvantages of 433—435
Fibers, fiber local storage (FLS) 445—447
Fibers, overview of 429—431
Fibers, routines, user-mode scheduler 460
Fibers, switching between 440—445
Fibers, thread affinity and 447—449
FiberState, building user-mode scheduler 455—159
FiberState, ContextSwitch and 464—465
FiberState, dispatching work 461
FiberWorkRoutine method 460 461
FIFO queues, alertable waits 195
FIFO queues, fine-grained locking for 617—621
FIFO queues, general-purpose lock free 632—636
FIFO queues, managing wait lists 185
FIFO queues, waiting in Win32 192
FILETIMEs 237—241
Finalizer thread 79
Fine-grained critical regions 45—47 550—553
Fine-grained locking 616—632
Fine-grained locking, arrays 616
Fine-grained locking, dictionary (hashtable) 626—632
Fine-grained locking, FIFO queue 617—621
Fine-grained locking, introducing with CLR thread pool 884
Fine-grained locking, linked lists 621—626
Fine-grained locking, lock leveling and 583
Fine-grained locking, overview of 614
FineGrainedHashTable 628—630
Fire and forget 893
Flags, legacy thread pool thread management 363
Flags, legacy thread pool work items 354—355
Flags, wait registrations, legacy thread pool 361—362
FLS (fiber local storage) 430 445—447
FlsAlloc function 445
for loops 658—660 757
For method, Parallel class 904—908
forall statement 70
foreach loops 658—660
ForEach method, Parallel class 904—908
Fork/join parallelism 685—688 915—917
FreeLibraryWhenCallbackReturns, Vista thread pool 350
Freeze threads 170
FS Register, accessing TEB via 147—148
Full fence (MFENCE) 512—515
FullyBuffered merge, PLINQ 913—914
Functional systems 61
Future<T> class, ContinueWith methods 900—902
Future<T> class, overview of 898—900
Futures, building dataflow systems 689—692
Futures, pipelining output of 698—702
Futures, promises compared with 693
Futures, structured parallel construct 70
Futures, task parallel library 898—900
Game simulation, and parallelism 718
garbage collection (GC) 79 766—767
General-purpose lock free FIFO queue 632—636
GetAvailableThreads, Vista thread pool 381
GetBucketAndLockNo, dictionary 630—631
GetCurrentFiber macro 439^140
GetCurrentThread 94
GetCurrentThreadld 93 444
GetData, TLS 123
GetExitCodeThread 94
GetFiberData macro 437 440
GetLastError, CreateThread 92
GetLastError, mutexes 213 215
GetLastError, semaphores 222
GetMaxThreads, Vista thread pool 380—381
GetMessage 198
GetMinThreads, Vista thread pool 380—381
GetOverlappedResult, asynchronous I/O 798—800
GetProcessAffinityMask, CPU 173—174
GetThreadContext 151
GetThreadPriority 160 162
GetThreadWaitChain, WCT 595—596
GetUserContext, threads 153
GetWindowThreadProcessId method 839
Global store ordering 511
graphical user interfaces see "GUI (graphical user interfaces)"
Guard page, creating stack overflow 140—145
Guard page, example of 137
Guard page, guaranteeing committed guard space 134—135
Guard page, overview of 133—134
Guard page, resetting after stack overflow 143
Guarded regions 311—312
GUI (graphical user interfaces) 829—861
GUI (graphical user interfaces), .NET Framework see ".NET Framework Asynchronous GUI "
GUI (graphical user interfaces), cancellation from 730
GUI (graphical user interfaces), message-based parallelism and 720
GUI (graphical user interfaces), overview of 829—830
GUI (graphical user interfaces), responsiveness 836
GUI (graphical user interfaces), Single Threaded Apartments 833—836
GUI (graphical user interfaces), threading models 830—833
GUI message pumping, CLR waits for managed code 207
GUI message pumping, CoWaitForMultipleHandles 202—203
GUI message pumping, deciding when 203—204
GUI message pumping, MsgWaitForMultipleObjects(Ex) 198—201
GUI message pumping, overview of 195—198
GUI message pumping, using kernel objects 188
Gustafsonis Law 764
Hand over hand locking 621—625
handle (!) command 250—251
Happens-before mechanism 509—510
| Hardware atomicity 486—506
Hardware atomicity of ordinary of loads and stores 487—492
Hardware atomicity, interlocked operations see "Interlocked operations"
Hardware atomicity, overview of 486
Hardware CAS (compare and swap), implementing critical regions with 47
Hardware CAS (compare and swap), instructions 55—58
Hardware CAS (compare and swap), reality of reordering, memory models 58—60
Hardware for critical regions 48
Hardware, architecture see "Parallel hardware architecture"
Hardware, concurrency 4
Hardware, interrupts 84
Hardware, memory models 509—511
Hashtable based dictionary 626—631
Hashtable type, .NET 627—631
Hierarchy, concurrent programs 6—7
Holder types, C++ 262—263
Homogeneous exceptions, collasping 728—729
Hosts, CLR 86 298—299
HT (HyperThreading) processor 178 277
httpRuntime, Vista thread pool 381
I/O (Input/Output) 785—827
I/O (Input/Output), .NET Framework asynchronous I/O 817
I/O (Input/Output), APC callback completion method 806—808
I/O (Input/Output), asynchronous device /file I/O 817—819
I/O (Input/Output), asynchronous I/O cancellation 822—826
I/O (Input/Output), asynchronous sockets I/O 814—817 820—822
I/O (Input/Output), blocking calls 730
I/O (Input/Output), completing asynchronous I/O 796
I/O (Input/Output), event handler completion method 802—805
I/O (Input/Output), I/O completion ports completion method 808—813
I/O (Input/Output), initiating asynchronous I/O 792—796
I/O (Input/Output), overlapped I/O 786—788
I/O (Input/Output), overlapped objects 788—792
I/O (Input/Output), polling completion method 798—800
I/O (Input/Output), synchronous completion method 797—798
I/O (Input/Output), synchronous vs. asynchronous 785—786
I/O (Input/Output), wait APIs completion method 800—802
I/O (Input/Output), Win32 asynchronous I/O 792
I/O completion packets 808
I/O completion ports and Vista thread pool 334—336
I/O completion ports, as rendezvous method 808—809
I/O completion ports, CLR thread pool 368—371
I/O completion ports, creating 810—811
I/O completion ports, legacy Win32 thread pool 359—360
I/O completion ports, overview of 809—810
I/O completion ports, thread pools and 319—321
I/O completion ports, tricky synchronization with 341—342
I/O completion ports, waiting for completion packets 811—813
I/O prioritization 162
IA64 architecture, .NET Framework memory models 516—517
IA64 architecture, hardware memory models 509—511
IA64 architecture, memory fences 512
IAsyncResult interface, APM, defined 399
IAsyncResult interface, APM, implementing APM with 413—418
IAsyncResult interface, APM, overview of 401—403
IAsyncResult interface, APM, rendezvousing with 403—411
IComponent interface 422—423
Ideal processor 170 179—180
IdealProcessors, TaskManagerPolicy 903
IdealThreadsPerProcessor, TaskManagerPolicy 903
IDisposable, mutexes 215
ILP (instruction level parallelism) 479
Immutability, managing state with 14
Immutability, overview of 34
Immutability, protecting library using 869
Immutability, single assignment enforcing 34—38
Increment statements 23
Incremental results 425—426
infinite recursion 140—141
Initial count, semaphores 42 222
Initialization, condition variables 305
Initialization, critical sections 257—258
Initialization, slim reader/writer locks 290
Initialization, Windows Vista one-time 529—534
InitializeCriticalSection 258—259
InitializeCriticalSectionAndSpinCount 258 264—265 267—268
InitializeCriticalSectionEx 258—259 264—266
Initialized thread state 155
InitializeThreadpoolEnvironment, Vista 343
initiallyOwned flag, mutexes 214
Initiating asynchronous I/O 792—796
InitiOnceBeginlnitialize, Vista 531
InitiOnceComplete, Vista 531
InitiOnceExecuteOnce, Vista 529—534
INIT_ONCE 529—534
INIT_ONCE-ASYNC 532
inline 892
Input data, data parallelism 657
Input/Output see "I/O (Input/Output)"
Instant state, library 868—869
Instruction level parallelism (ILP) 479
Instruction pointer (IP) 81—82
Instruction reordering 479—480 481—484
int value, WaitHandle 206
Intel64 architecture 509—511
Interlocked class 494
Interlocked operations 492—506
Interlocked operations, 128-bit compare exchanges 500—502
Interlocked operations, atomic loads and stores of 64-bit values 499—500
Interlocked operations, bit-test-and-set/bit-test-and-reset 502—503
Interlocked operations, compare and exchange 496—499
Interlocked operations, controlling execution orders 484
Interlocked operations, exchange 493—496
Interlocked operations, other kinds of 504—506
Interlocked operations, overview of 56 492—493
Interlocked singly-linked lists (SLists) 538—540
Interlocked.CompareExchange, examples of low-block code 535—536
Interlocked.CompareExchange, implementing 128-bit compare exchanges 500—501
Interlocked.CompareExchange, implementing compare and exchange 497—498
Interlocked.CompareExchange, lazy initialization in .NET 526—527
InterlockedExchange 64 499
InterlockedExchangePointer 495
Internal data structures, checking available stack space 148—151
Internal data structures, overview of 145—146
Internal data structures, programmatically creating TEB 146—148
Internal data structures, threads 145—151
Interprocess synchronization 188
Interrupt instance method 207
Interrupt Request Level (IRQL), DPCs 84—85
Interrupts, hardware 84
Interrupts, quantum accounting 163—164
Interrupts, software 84—85
Interrupts, waiting or sleeping threads 207—208
IntPtrs 90
Intraprocess isolation 32
Invalid states 20—21
InvalidWaitHandle, CLR thread pool 374 377
Invariants, invalid states and broken 20—21
Invariants, lock reliability and security 876—877
Invariants, overview of 547—548
Invariants, rules for recursion 558
Invariants, static state access for libraries 868
Invoke method, Parallel class 904—909
IOCompletionCallback 370
IP (instruction pointer) 81—82
IpStartAddress, CreateThread 91
IReleaseCount, ReleaseSemaphore 223—224
IRQL (Interrupt Request Level), DPCs 84—85
IsCompleted flag, APM 404 411 416
ISO Common Language Infrastructure 516—518
Isolation, custom thread pools with 387—391
Isolation, data ownership with 33—34
Isolation, employing 31—34
Isolation, managing state with 14
Isolation, protecting library with 869
ISupportsCancelation 915
ISynchronizeInvoke 838—839
Iterations, continuous 663—667
Iterations, data parallelism and 659—661
Iterations, deciding to igo paralleli and 756—757
|
|
|
Ðåêëàìà |
|
|
|