Programming concurrency on the JVM: mastering synchronization, STM and Actors
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Raleigh, NC
Pragmatic Bookshelf
2011
|
Schriftenreihe: | The Pragmatic Programmers
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XVII, 270 S. graph. Darst. |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV039619696 | ||
003 | DE-604 | ||
005 | 20120125 | ||
007 | t | ||
008 | 111006s2011 d||| |||| 00||| eng d | ||
020 | |z 9781934356760 |9 978-1-93435-676-0 | ||
035 | |a (OCoLC)714726101 | ||
035 | |a (DE-599)BVBBV039619696 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-Aug4 |a DE-11 |a DE-473 | ||
082 | 0 | |a 005.42 |2 23 | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
100 | 1 | |a Subramaniam, Venkat |e Verfasser |4 aut | |
245 | 1 | 0 | |a Programming concurrency on the JVM |b mastering synchronization, STM and Actors |c Venkat Subramaniam |
264 | 1 | |a Raleigh, NC |b Pragmatic Bookshelf |c 2011 | |
300 | |a XVII, 270 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a The Pragmatic Programmers | |
650 | 0 | 7 | |a Java Virtual Machine |0 (DE-588)4541748-9 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Java Virtual Machine |0 (DE-588)4541748-9 |D s |
689 | 0 | |5 DE-604 | |
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=024470131&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-024470131 |
Datensatz im Suchindex
_version_ | 1804148465871093760 |
---|---|
adam_text | Preface
............. xi
1.
The Power
and Perils of Concurrency
...... 1
1.1
Threads: The Flow of Execution
1
1.2
The Power of Concurrency
2
1.3
The Perils of Concurrency
5
1.4
Recap
10
Part I
—
Strategies for Concurrency
2.
Division of Labor
........... 15
2.1
From Sequential to Concurrent
15
2.2
Concurrency in
Ю
-Intensive Apps
18
2.3
Speedup for the IO-Intensive App
25
2.4
Concurrency in Computationally Intensive Apps
25
2.5
Speedup for the Computationally Intensive App
31
2.6
Strategies for Effective Concurrency
33
2.7
Recap
34
3.
Design Approaches
.......... 35
3.1
Dealing with State
35
3.2
Exploring Design Options
36
3.3
Shared Mutable Design
37
3.4
Isolated Mutable Design
37
3.5
Purely Immutable Design
38
3.6
Persistent/Immutable Data Structures
39
3.7
Selecting a Design Approach
42
3.8
Recap
43
viii
· Contents
Part II
—
Modern Java/JDK Concurrency
4.
Scalability and Thread Safety
........ 47
4.1
Managing Threads with ExecutorService
48
4.2
Coordinating Threads
49
4.3
Exchanging Data
58
4.4
Java
7
Fork-Join API
61
4.5
Scalable Collections
63
4.6
Lock vs. Synchronized
66
4.7
Recap
71
5.
Taming Shared Mutability
.........73
5.1
Shared Mutability
!=
public
73
5.2
Spotting Concurrency Issues
74
5.3
Preserve Invariant
75
5.4
Mind Your Resources
76
5.5
Ensure Visibility
79
5.6
Enhance Concurrency
80
5.7
Ensure Atomicity
82
5.8
Recap
85
Part III
—
Software Transactional Memory
6.
Introduction to Software Transactional Memory
... 89
6.1
Synchronization Damns Concurrency
89
6.2
The Deficiency of the Object Model
90
6.3
Separation of Identity and State
91
6.4
Software Transactional Memory
92
6.5
Transactions in STM
96
6.6
Concurrency Using STM
97
6.7
Concurrency Using Akka/Multiverse STM
102
6.8
Creating Transactions
104
6.9
Creating Nested Transactions 111
6.10
Configuring Akka Transactions
120
6.11
Blocking Transactions—Sensible Wait
122
6.12
Commit and Rollback Events
126
6.13
Collections and Transactions
129
6.14
Dealing with the Write Skew Anomaly
133
6.15
Limitations of STM
136
6.16
Recap
140
7.
STM
in Clojure, Groovy, Java, JRuby, and
Scala
. . . 141
7.1
Clojure STM
142
7.2
Groovy Integration
142
7.3
Java Integration
146
7.4
JRuby Integration
149
7.5
Choices in
Scala
156
7.6
Recap
158
Part IV
—
Actor-Based Concurrency
8.
Favoring Isolated Mutability
........ 163
8.1
Isolating Mutability Using Actors
164
8.2
Actor Qualities
165
8.3
Creating Actors
166
8.4
Sending and Receiving Messages
173
8.5
Working with Multiple Actors
178
8.6
Coordinating Actors
182
8.7
Using Typed Actors
190
8.8
Typed Actors and Murmurs
195
8.9
Mixing Actors and STM
201
8.10
Using Transactors
202
8.11
Coordinating Typed Actors
210
8.12
Remote Actors
216
8.13
Limitations of the Actor-Based Model
218
8.14
Recap
219
9.
Actors in Groovy, Java, JRuby, and
Scala
.....221
9.1
Actors in Groovy with GPars
221
9.2
Java Integration
235
9.3
JRuby Akka Integration
235
9.4
Choices in
Scala
239
9.5
Recap
239
PartV
—
Epilogue
10.
Zen of Programming Concurrency
...... 243
10.1
Exercise Your Options
243
10.2
Concurrency: Programmer s Guide
244
10.3
Concurrency: Architect s Guide
245
10.4
Choose Wisely
246
χ
· Contents
Al. Clojure
Agents
........... 249
A2. Web Resources
........... 255
A3.
Bibliography
............ 259
Index
............. 261
|
any_adam_object | 1 |
author | Subramaniam, Venkat |
author_facet | Subramaniam, Venkat |
author_role | aut |
author_sort | Subramaniam, Venkat |
author_variant | v s vs |
building | Verbundindex |
bvnumber | BV039619696 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)714726101 (DE-599)BVBBV039619696 |
dewey-full | 005.42 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.42 |
dewey-search | 005.42 |
dewey-sort | 15.42 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01313nam a2200337 c 4500</leader><controlfield tag="001">BV039619696</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20120125 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">111006s2011 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="z">9781934356760</subfield><subfield code="9">978-1-93435-676-0</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)714726101</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV039619696</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-473</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.42</subfield><subfield code="2">23</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="100" ind1="1" ind2=" "><subfield code="a">Subramaniam, Venkat</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Programming concurrency on the JVM</subfield><subfield code="b">mastering synchronization, STM and Actors</subfield><subfield code="c">Venkat Subramaniam</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Raleigh, NC</subfield><subfield code="b">Pragmatic Bookshelf</subfield><subfield code="c">2011</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVII, 270 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="490" ind1="0" ind2=" "><subfield code="a">The Pragmatic Programmers</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java Virtual Machine</subfield><subfield code="0">(DE-588)4541748-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Java Virtual Machine</subfield><subfield code="0">(DE-588)4541748-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</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=024470131&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-024470131</subfield></datafield></record></collection> |
id | DE-604.BV039619696 |
illustrated | Illustrated |
indexdate | 2024-07-10T00:07:34Z |
institution | BVB |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-024470131 |
oclc_num | 714726101 |
open_access_boolean | |
owner | DE-Aug4 DE-11 DE-473 DE-BY-UBG |
owner_facet | DE-Aug4 DE-11 DE-473 DE-BY-UBG |
physical | XVII, 270 S. graph. Darst. |
publishDate | 2011 |
publishDateSearch | 2011 |
publishDateSort | 2011 |
publisher | Pragmatic Bookshelf |
record_format | marc |
series2 | The Pragmatic Programmers |
spelling | Subramaniam, Venkat Verfasser aut Programming concurrency on the JVM mastering synchronization, STM and Actors Venkat Subramaniam Raleigh, NC Pragmatic Bookshelf 2011 XVII, 270 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier The Pragmatic Programmers Java Virtual Machine (DE-588)4541748-9 gnd rswk-swf Java Virtual Machine (DE-588)4541748-9 s DE-604 Digitalisierung UB Bamberg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024470131&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Subramaniam, Venkat Programming concurrency on the JVM mastering synchronization, STM and Actors Java Virtual Machine (DE-588)4541748-9 gnd |
subject_GND | (DE-588)4541748-9 |
title | Programming concurrency on the JVM mastering synchronization, STM and Actors |
title_auth | Programming concurrency on the JVM mastering synchronization, STM and Actors |
title_exact_search | Programming concurrency on the JVM mastering synchronization, STM and Actors |
title_full | Programming concurrency on the JVM mastering synchronization, STM and Actors Venkat Subramaniam |
title_fullStr | Programming concurrency on the JVM mastering synchronization, STM and Actors Venkat Subramaniam |
title_full_unstemmed | Programming concurrency on the JVM mastering synchronization, STM and Actors Venkat Subramaniam |
title_short | Programming concurrency on the JVM |
title_sort | programming concurrency on the jvm mastering synchronization stm and actors |
title_sub | mastering synchronization, STM and Actors |
topic | Java Virtual Machine (DE-588)4541748-9 gnd |
topic_facet | Java Virtual Machine |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024470131&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT subramaniamvenkat programmingconcurrencyonthejvmmasteringsynchronizationstmandactors |