Java concurrency in practice:
Gespeichert in:
Format: | Buch |
---|---|
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ ; Munich [u.a.]
Addison-Wesley
2010
|
Ausgabe: | 9. print. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XX, 403 S. graph. Darst. |
ISBN: | 9780321349606 0321349601 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV036647855 | ||
003 | DE-604 | ||
005 | 20110316 | ||
007 | t | ||
008 | 100901s2010 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)685187201 | ||
035 | |a (DE-599)BVBBV036647855 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
049 | |a DE-860 |a DE-Aug4 |a DE-739 |a DE-83 | ||
050 | 0 | |a QA76.73.J38 G588 2010 | |
082 | 0 | |a 005.13/3 22 | |
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 9. print. | ||
264 | 1 | |a Upper Saddle River, NJ ; Munich [u.a.] |b Addison-Wesley |c 2010 | |
300 | |a XX, 403 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
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 Java |g Programmiersprache |0 (DE-588)4401313-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 Thread |0 (DE-588)4377482-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 | |8 1\p |5 DE-604 | |
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 2\p |5 DE-604 | |
700 | 1 | |a Goetz, Brian |e Sonstige |0 (DE-588)132016672 |4 oth | |
856 | 4 | 2 | |m Digitalisierung UB Passau |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020567438&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-020567438 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 2\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
_version_ | 1804143261914234880 |
---|---|
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
315
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
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 ThreadPool 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
її.
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 a/g
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
553
Ал
Class annotations
.............................. 353
A.2 Field and method annotations
..........,........,.., 353
Bibliography
35g
Index
359
|
any_adam_object | 1 |
author_GND | (DE-588)132016672 |
building | Verbundindex |
bvnumber | BV036647855 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.73.J38 G588 2010 |
callnumber-search | QA76.73.J38 G588 2010 |
callnumber-sort | QA 276.73 J38 G588 42010 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 250 |
classification_tum | DAT 516f |
ctrlnum | (OCoLC)685187201 (DE-599)BVBBV036647855 |
dewey-full | 005.13/322 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.13/3 22 |
dewey-search | 005.13/3 22 |
dewey-sort | 15.13 13 222 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 9. print. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02413nam a2200577zc 4500</leader><controlfield tag="001">BV036647855</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20110316 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">100901s2010 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)685187201</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV036647855</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-860</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-83</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.73.J38 G588 2010</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.13/3 22</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">9. 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">2010</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="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">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">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">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">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="8">1\p</subfield><subfield code="5">DE-604</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">2\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 Passau</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=020567438&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-020567438</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><datafield tag="883" ind1="1" ind2=" "><subfield code="8">2\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.BV036647855 |
illustrated | Illustrated |
indexdate | 2024-07-09T22:44:51Z |
institution | BVB |
isbn | 9780321349606 0321349601 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-020567438 |
oclc_num | 685187201 |
open_access_boolean | |
owner | DE-860 DE-Aug4 DE-739 DE-83 |
owner_facet | DE-860 DE-Aug4 DE-739 DE-83 |
physical | XX, 403 S. graph. Darst. |
publishDate | 2010 |
publishDateSearch | 2010 |
publishDateSort | 2010 |
publisher | Addison-Wesley |
record_format | marc |
spelling | Java concurrency in practice Brian Goetz ... 9. print. Upper Saddle River, NJ ; Munich [u.a.] Addison-Wesley 2010 XX, 403 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Java (Computer program language) Parallel programming (Computer science) Threads (Computer programs) Nebenläufigkeit (DE-588)4115352-2 gnd rswk-swf Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Parallelverarbeitung (DE-588)4075860-6 gnd rswk-swf Thread (DE-588)4377482-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 1\p DE-604 Parallelverarbeitung (DE-588)4075860-6 s 2\p DE-604 Goetz, Brian Sonstige (DE-588)132016672 oth Digitalisierung UB Passau application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020567438&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 2\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Java concurrency in practice Java (Computer program language) Parallel programming (Computer science) Threads (Computer programs) Nebenläufigkeit (DE-588)4115352-2 gnd Java Programmiersprache (DE-588)4401313-9 gnd Parallelverarbeitung (DE-588)4075860-6 gnd Thread (DE-588)4377482-9 gnd Java 2 Standard Edition 5.0 (DE-588)4799436-8 gnd |
subject_GND | (DE-588)4115352-2 (DE-588)4401313-9 (DE-588)4075860-6 (DE-588)4377482-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 (Computer program language) Parallel programming (Computer science) Threads (Computer programs) Nebenläufigkeit (DE-588)4115352-2 gnd Java Programmiersprache (DE-588)4401313-9 gnd Parallelverarbeitung (DE-588)4075860-6 gnd Thread (DE-588)4377482-9 gnd Java 2 Standard Edition 5.0 (DE-588)4799436-8 gnd |
topic_facet | Java (Computer program language) Parallel programming (Computer science) Threads (Computer programs) Nebenläufigkeit Java Programmiersprache Parallelverarbeitung Thread Java 2 Standard Edition 5.0 |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020567438&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT goetzbrian javaconcurrencyinpractice |