Java concurrency in practice:
Gespeichert in:
Format: | Buch |
---|---|
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ ; Munich [u.a.]
Addison-Wesley
2009
|
Ausgabe: | 7. print. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XX, 403 S. graph. Darst. |
ISBN: | 9780321349606 0321349601 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV035479624 | ||
003 | DE-604 | ||
005 | 20090512 | ||
007 | t | ||
008 | 090511s2009 d||| |||| 00||| eng d | ||
020 | |a 9780321349606 |9 978-0-321-34960-6 | ||
020 | |a 0321349601 |c pbk. : alk. paper |9 0-321-34960-1 | ||
035 | |a (OCoLC)319226716 | ||
035 | |a (DE-599)BVBBV035479624 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
049 | |a DE-526 |a DE-20 |a DE-188 | ||
082 | 0 | |a 005.133 | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a DAT 516f |2 stub | ||
245 | 1 | 0 | |a Java concurrency in practice |c Brian Goetz ... |
250 | |a 7. print. | ||
264 | 1 | |a Upper Saddle River, NJ ; Munich [u.a.] |b Addison-Wesley |c 2009 | |
300 | |a XX, 403 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 7 | |a Java |2 larpcal | |
650 | 4 | |a Parallelverarbeitung - Java 2 Standard Edition 5.0 | |
650 | 7 | |a Programação paralela |2 larpcal | |
650 | 7 | |a Técnicas de programação |2 larpcal | |
650 | 4 | |a Java (Computer program language) | |
650 | 4 | |a Parallel programming (Computer science) | |
650 | 4 | |a Threads (Computer programs) | |
650 | 0 | 7 | |a Nebenläufigkeit |0 (DE-588)4115352-2 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Thread |0 (DE-588)4377482-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Parallelverarbeitung |0 (DE-588)4075860-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java 2 Standard Edition 5.0 |0 (DE-588)4799436-8 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Java 2 Standard Edition 5.0 |0 (DE-588)4799436-8 |D s |
689 | 0 | 1 | |a Nebenläufigkeit |0 (DE-588)4115352-2 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 1 | 1 | |a Nebenläufigkeit |0 (DE-588)4115352-2 |D s |
689 | 1 | 2 | |a Thread |0 (DE-588)4377482-9 |D s |
689 | 1 | |5 DE-188 | |
689 | 2 | 0 | |a Parallelverarbeitung |0 (DE-588)4075860-6 |D s |
689 | 2 | 1 | |a Java 2 Standard Edition 5.0 |0 (DE-588)4799436-8 |D s |
689 | 2 | |8 1\p |5 DE-604 | |
700 | 1 | |a Goetz, Brian |e Sonstige |0 (DE-588)132016672 |4 oth | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017536168&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-017536168 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
_version_ | 1804139089455218688 |
---|---|
adam_text | Contents
Listings xii
Preface
xvii
ι
Introduction
ι
1.1
A (very) brief history of concurrency
...................
ι
1.2
Benefits of threads
............................. 3
1.3
Risks of threads
............................... 5
1.4
Threads are everywhere
.......................... 9
1 Fundamentals
13
2
Thread Safety
15
2.1
What is thread safety?
........................... 17
2.2
Atomicity
................................... 19
2.3
Locking
.................................... 23
2.4
Guarding state with locks
......................... 27
2.5
Liveness and performance
......................... 29
3
Sharing Objects
33
3.1
Visibility
................................... 33
3.2
Publication and escape
........................... 39
3.3
Thread confinement
............................ 42
3.4
Immutability
................................. 46
3.5
Safe publication
............................... 49
4
Composing Objects
55
4.1
Designing a thread-safe class
....................... 55
4.2
Instance confinement
............................ 58
4.3
Delegating thread safety
.......................... 62
4.4
Adding functionality to existing thread-safe classes
.......... 71
4.5
Documenting synchronization policies
.................. 74
ix
Contents
5 Building Blocks 79
5.1
Synchronized collections..........................
79
5.2
Concurrent collections
........................... 84
5.3
Blocking queues and the producer-consumer pattern
......... 87
5.4
Blocking and interruptible methods
................... 92
5.5
Synchronizers
................................ 94
5.6
Building an efficient, scalable result cache
................ 101
II Structuring Concurrent Applications
111
6
Task Execution
113
6.1
Executing tasks in threads
.........................113
6.2
The Executor framework
.........................117
6.3
Finding exploitable parallelism
......................123
7
Cancellation and Shutdown
135
7.1
Task cancellation
..............................135
7.2
Stopping a thread-based service
.....................150
7.3
Handling abnormal thread termination
.................161
7.4
JVM shutdown
...............................164
8
Applying Thread Pools
167
8.1
Implicit couplings between tasks and execution policies
.......167
8.2
Sizing thread pools
.............................170
8.3
Configuring ThreadPool Executor
....................171
8.4
Extending ThreadPooT Executor
.....................179
8.5
Parallelizing recursive algorithms
....................181
9
GUI Applications
189
9.1
Why are GUIs single-threaded?
......................189
9.2
Short-running GUI tasks
..........................192
9.3
Long-running GUI tasks
..........................195
9.4
Shared data models
.............................198
9.5
Other forms of single-threaded subsystems
...............202
III Liveness, Performance, and Testing
203
10
Avoiding Liveness Hazards
205
10.1
Deadlock
...................................205
10.2
Avoiding and diagnosing deadlocks
...................215
10.3
Other liveness hazards
...........................218
11
Performance and Scalability
221
11.1
Thinking about performance
.......................221
11.2
Amdahl s law
................................225
11.3
Costs introduced by threads
........................229
11.4
Reducing lock contention
.........................232
Contents xi
11.5
Example: Comparing Map performance
.................242
11.6
Reducing context switch overhead
....................243
12
Testing Concurrent Programs
247
12.1
Testing for correctness
...........................248
12.2
Testing for performance
..........................260
12.3
Avoiding performance testing pitfalls
..................266
12.4
Complementary testing approaches
...................270
IV Advanced Topics
275
13
Explicit Locks
277
13.1
Lock and ReentrantLock
..........................277
13.2
Performance considerations
........................282
13.3
Fairness
................................ . . . . 283
13.4
Choosing between synchronized and ReentrantLock
.........285
13.5
Read-write locks
..............................286
14
Building Custom Synchronizers
291
14.1
Managing state dependence
........................291
14.2
Using condition queues
..........................298
14.3
Explicit condition objects
..........................306
14.4
Anatomy of a synchronizer
........................308
14.5
AbstractQueuedSynchronizer
...................... 311
14.6
AQS in
java.util .concurrent
synchronizer classes
.........314
15
Atomic Variables and Nonblocking Synchronization
319
15.1
Disadvantages of locking
.........................319
15.2
Hardware support for concurrency
....................321
15.3
Atomic variable classes
...........................324
15.4
Nonblocking algorithms
..........................329
16
The Java Memory Model
337
16.1
What is a memory model, and why would I want one?
........337
16.2
Publication
..................................344
16.3
Initialization safety
.............................349
A Annotations for Concurrency
353
A.i Class annotations
..............................353
A.
2
Field and method annotations
.......................353
Bibliography
355
Index
359
|
any_adam_object | 1 |
author_GND | (DE-588)132016672 |
building | Verbundindex |
bvnumber | BV035479624 |
classification_rvk | ST 250 |
classification_tum | DAT 516f |
ctrlnum | (OCoLC)319226716 (DE-599)BVBBV035479624 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 7. print. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02469nam a2200601zc 4500</leader><controlfield tag="001">BV035479624</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20090512 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">090511s2009 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780321349606</subfield><subfield code="9">978-0-321-34960-6</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0321349601</subfield><subfield code="c">pbk. : alk. paper</subfield><subfield code="9">0-321-34960-1</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)319226716</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV035479624</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-526</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-188</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 516f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Java concurrency in practice</subfield><subfield code="c">Brian Goetz ...</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">7. print.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ ; Munich [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XX, 403 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Java</subfield><subfield code="2">larpcal</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Parallelverarbeitung - Java 2 Standard Edition 5.0</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programação paralela</subfield><subfield code="2">larpcal</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Técnicas de programação</subfield><subfield code="2">larpcal</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Java (Computer program language)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Parallel programming (Computer science)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Threads (Computer programs)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Nebenläufigkeit</subfield><subfield code="0">(DE-588)4115352-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Thread</subfield><subfield code="0">(DE-588)4377482-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Parallelverarbeitung</subfield><subfield code="0">(DE-588)4075860-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java 2 Standard Edition 5.0</subfield><subfield code="0">(DE-588)4799436-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Java 2 Standard Edition 5.0</subfield><subfield code="0">(DE-588)4799436-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Nebenläufigkeit</subfield><subfield code="0">(DE-588)4115352-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Nebenläufigkeit</subfield><subfield code="0">(DE-588)4115352-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="2"><subfield code="a">Thread</subfield><subfield code="0">(DE-588)4377482-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-188</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">Parallelverarbeitung</subfield><subfield code="0">(DE-588)4075860-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2="1"><subfield code="a">Java 2 Standard Edition 5.0</subfield><subfield code="0">(DE-588)4799436-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Goetz, Brian</subfield><subfield code="e">Sonstige</subfield><subfield code="0">(DE-588)132016672</subfield><subfield code="4">oth</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017536168&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-017536168</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield></record></collection> |
id | DE-604.BV035479624 |
illustrated | Illustrated |
indexdate | 2024-07-09T21:38:32Z |
institution | BVB |
isbn | 9780321349606 0321349601 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-017536168 |
oclc_num | 319226716 |
open_access_boolean | |
owner | DE-526 DE-20 DE-188 |
owner_facet | DE-526 DE-20 DE-188 |
physical | XX, 403 S. graph. Darst. |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | Addison-Wesley |
record_format | marc |
spelling | Java concurrency in practice Brian Goetz ... 7. print. Upper Saddle River, NJ ; Munich [u.a.] Addison-Wesley 2009 XX, 403 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Java larpcal Parallelverarbeitung - Java 2 Standard Edition 5.0 Programação paralela larpcal Técnicas de programação larpcal Java (Computer program language) Parallel programming (Computer science) Threads (Computer programs) Nebenläufigkeit (DE-588)4115352-2 gnd rswk-swf Thread (DE-588)4377482-9 gnd rswk-swf Parallelverarbeitung (DE-588)4075860-6 gnd rswk-swf Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Java 2 Standard Edition 5.0 (DE-588)4799436-8 gnd rswk-swf Java 2 Standard Edition 5.0 (DE-588)4799436-8 s Nebenläufigkeit (DE-588)4115352-2 s DE-604 Java Programmiersprache (DE-588)4401313-9 s Thread (DE-588)4377482-9 s DE-188 Parallelverarbeitung (DE-588)4075860-6 s 1\p DE-604 Goetz, Brian Sonstige (DE-588)132016672 oth Digitalisierung UB Bamberg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017536168&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Java concurrency in practice Java larpcal Parallelverarbeitung - Java 2 Standard Edition 5.0 Programação paralela larpcal Técnicas de programação larpcal Java (Computer program language) Parallel programming (Computer science) Threads (Computer programs) Nebenläufigkeit (DE-588)4115352-2 gnd Thread (DE-588)4377482-9 gnd Parallelverarbeitung (DE-588)4075860-6 gnd Java Programmiersprache (DE-588)4401313-9 gnd Java 2 Standard Edition 5.0 (DE-588)4799436-8 gnd |
subject_GND | (DE-588)4115352-2 (DE-588)4377482-9 (DE-588)4075860-6 (DE-588)4401313-9 (DE-588)4799436-8 |
title | Java concurrency in practice |
title_auth | Java concurrency in practice |
title_exact_search | Java concurrency in practice |
title_full | Java concurrency in practice Brian Goetz ... |
title_fullStr | Java concurrency in practice Brian Goetz ... |
title_full_unstemmed | Java concurrency in practice Brian Goetz ... |
title_short | Java concurrency in practice |
title_sort | java concurrency in practice |
topic | Java larpcal Parallelverarbeitung - Java 2 Standard Edition 5.0 Programação paralela larpcal Técnicas de programação larpcal Java (Computer program language) Parallel programming (Computer science) Threads (Computer programs) Nebenläufigkeit (DE-588)4115352-2 gnd Thread (DE-588)4377482-9 gnd Parallelverarbeitung (DE-588)4075860-6 gnd Java Programmiersprache (DE-588)4401313-9 gnd Java 2 Standard Edition 5.0 (DE-588)4799436-8 gnd |
topic_facet | Java Parallelverarbeitung - Java 2 Standard Edition 5.0 Programação paralela Técnicas de programação Java (Computer program language) Parallel programming (Computer science) Threads (Computer programs) Nebenläufigkeit Thread Parallelverarbeitung Java Programmiersprache Java 2 Standard Edition 5.0 |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017536168&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT goetzbrian javaconcurrencyinpractice |