Index
[SYMBOL]
[A]
[B]
[C]
[D]
[E]
[F]
[G]
[H]
[I]
[J]
[K]
[L]
[M]
[N]
[O]
[P]
[Q]
[R]
[S]
[T]
[U]
[V]
[W]
garbage collection as performance testing pitfall
gate 2nd 3rd [See also memory, barriers.] [See also notification, conditional.] [See also latch(es).] as latch role ThreadGate example global variables ThreadLocal variables use with good practices
[See strategies, design.] [See guidelines, documentation.] [See guidelines, encapsulation.] [See design, of thread-safe classes, guidelines.] [See analysis, performance.] [See design, strategies.] graceful degradation and execution policy and saturation policy limiting task count task design importance shutdown vs. abrupt shutdown
granularity 2nd [See also cache/caching, implementation issues, atomic/atomicity.] [See also contention/contended, scope.] atomic variable advantages lock Amdahl's law insights reduction of nonblocking algorithm advantages serialization throughput impact timer measurement impact guarded objects 2nd state locks use for @GuardedBy and documenting synchronization policy 2nd
GUI (Graphical User Interface) 2nd 3rd [See also event(s).] [See also Executor framework, single-threaded.] [See also listeners, Swing.] applications thread safety concerns frameworks as single-threaded task execution example long-running task handling MVC pattern use in vehicle tracking example response-time sensitivity and execution policy single-threaded use rationale for threads benefits for
guidelines 2nd 3rd 4th [See also strategies, design.] [See also guidelines, documentation.] [See also policy(s).] [See also design, strategies.] allocation vs. synchronization atomicity definitions concurrency design rules Condition methods potential confusions condition predicate documentation lock and condition queue relationship condition wait usage confinement deadlock avoidance alien method risks lock ordering open call advantages thread starvation documentation value for safety encapsulation 2nd value for safety exception handling execution policy design special case implications final field use finalizer precautions happens-before use immutability effectively immutable objects objects requirements for value for safety initialization safety 2nd interleaving diagrams interruption handling cancellation relationship importance of interruption policy knowledge 2nd interrupt swallowing precautions intrinsic locks vs. ReentrantLock invariants locking requirements for thread safety importance value for safety lock contention, reduction contention, scalability impact holding ordering, deadlock avoidance measurement importance notification objects stateless, thread-safety of operation ordering synchronization role optimization lock contention impact premature, avoidance of parallelism analysis performance optimization questions simplicity vs postconditions private field use publication 2nd safety definition testing scalability attributes locking impact on sequential loops parallelization criteria serialization sources sharing safety strategies sharing objects simplicity performance vs starvation avoidance thread priority precautions state consistency preservation managing variables, independent stateless objects thread-safety of synchronization immutable objects as replacement for shared state requirements for task cancellation criteria for testing effective performance tests timing-sensitive data races this reference publication risks threads daemon thread precautions handling encapsulation lifecycle methods pools safety 2nd volatile variables
|