skip to content
Hands-On Concurrency with Rust : Confidently build memory-safe, parallel, and efficient software in Rust. Preview this item
ClosePreview this item
Checking...

Hands-On Concurrency with Rust : Confidently build memory-safe, parallel, and efficient software in Rust.

Author: Brian L Troutwine
Publisher: Birmingham : Packt Publishing, 2018.
Edition/Format:   eBook : Document : EnglishView all editions and formats
Summary:
Writing safe and correct parallel programs is tough. Reasoning about concurrent memory modification is tough; efficiently exploiting the modern computing environment (with its multi-layered caches and deep execution pipelines) is also tough. Most systems programming languages add a further complication: unsafe memory access. The burden on you ...
Rating:

(not yet rated) 0 with reviews - Be the first.

Subjects
More like this

Find a copy online

Find a copy in the library

&AllPage.SpinnerRetrieving; Finding libraries that hold this item...

Details

Genre/Form: Electronic books
Additional Physical Format: Print version:
L. Troutwine, Brian.
Hands-On Concurrency with Rust : Confidently build memory-safe, parallel, and efficient software in Rust.
Birmingham : Packt Publishing, ©2018
Material Type: Document, Internet resource
Document Type: Internet Resource, Computer File
All Authors / Contributors: Brian L Troutwine
ISBN: 9781788478359 1788478355
OCLC Number: 1039680680
Notes: Thread pooling.
Description: 1 online resource (453 pages)
Contents: Cover; Title Page; Copyright and Credits; Dedication; Packt Upsell; Contributors; Table of Contents; Preface; Chapter 1: Preliminaries --
Machine Architecture and Getting Started with Rust; Technical requirements; The machine; The CPU; Memory and caches; Memory model; Getting set up; The interesting part; Debugging Rust programs; Summary; Further reading; Chapter 2: Sequential Rust Performance and Testing; Technical requirements; Diminishing returns; Performance; Standard library HashMap; Naive HashMap; Testing with QuickCheck; Testing with American Fuzzy Lop. Performance testing with CriterionInspecting with the Valgrind Suite; Inspecting with Linux perf; A better naive HashMap; Summary; Further reading; Chapter 3: The Rust Memory Model --
Ownership, References and Manipulation; Technical requirements; Memory layout; Pointers to memory; Allocating and deallocating memory; The size of a type; Static and dynamic dispatch; Zero sized types; Boxed types; Custom allocators; Implementations; Option; Cell and RefCell; Rc; Vec; Summary; Further reading; Chapter 4: Sync and Send --
the Foundation of Rust Concurrency; Technical requirements; Sync and Send. Racing threadsThe flaw of the Ring; Getting back to safety; Safety by exclusion; Using MPSC; A telemetry server; Summary; Further reading; Chapter 5: Locks --
Mutex, Condvar, Barriers and RWLock; Technical requirements; Read many, write exclusive locks --
RwLock; Blocking until conditions change --
condvar; Blocking until the gang's all here --
barrier; More mutexes, condvars, and friends in action; The rocket preparation problem; The rope bridge problem; Hopper-an MPSC specialization; The problem; Hopper in use; A conceptual view of hopper; The deque; The Receiver; The Sender. Testing concurrent data structuresQuickCheck and loops; Searching for crashes with AFL; Benchmarking; Summary; Further reading; Chapter 6: Atomics --
the Primitives of Synchronization; Technical requirements; Linearizability; Memory ordering --
happens-before and synchronizes-with; Ordering::Relaxed; Ordering::Acquire; Ordering::Release; Ordering::AcqRel; Ordering::SeqCst; Building synchronization; Mutexes; Compare and set mutex; An incorrect atomic queue; Options to correct the incorrect queue; Semaphore; Binary semaphore, or, a less wasteful mutex; Summary; Further reading. Chapter 7: Atomics --
Safely Reclaiming MemoryTechnical requirements; Approaches to memory reclamation; Reference counting; Tradeoffs; Hazard pointers; A hazard-pointer Treiber stack; The hazard of Nightly; Exercizing the hazard-pointer Treiber stack; Tradeoffs; Epoch-based reclamation; An epoch-based Treiber stack; crossbeam_epoch::Atomic; crossbeam_epoch::Guard::defer; crossbeam_epoch::Local::pin; Exercising the epoch-based Treiber stack; Tradeoffs; Summary; Further reading; Chapter 8: High-Level Parallelism --
Threadpools, Parallel Iterators and Processes; Technical requirements.

Abstract:

Writing safe and correct parallel programs is tough. Reasoning about concurrent memory modification is tough; efficiently exploiting the modern computing environment (with its multi-layered caches  Read more...

Reviews

User-contributed reviews
Retrieving GoodReads reviews...
Retrieving DOGObooks reviews...

Tags

Be the first.
Confirm this request

You may have already requested this item. Please select Ok if you would like to proceed with this request anyway.

Linked Data


Primary Entity

<http://www.worldcat.org/oclc/1039680680> # Hands-On Concurrency with Rust : Confidently build memory-safe, parallel, and efficient software in Rust.
    a schema:CreativeWork, schema:Book, schema:MediaObject ;
    library:oclcnum "1039680680" ;
    library:placeOfPublication <http://id.loc.gov/vocabulary/countries/enk> ;
    library:placeOfPublication <http://experiment.worldcat.org/entity/work/data/5215127768#Place/birmingham> ; # Birmingham
    rdfs:comment "Warning: This malformed URI has been treated as a string - 'https://img1.od-cdn.com/ImageType-100/6135-1/{A740B3DF-D89E-48FB-BA3B-50487B0ADD77}Img100.jpg'" ;
    schema:about <http://experiment.worldcat.org/entity/work/data/5215127768#Topic/portable_&_handheld_devices_consumer_user_guides> ; # Portable & handheld devices: consumer/user guides
    schema:about <http://experiment.worldcat.org/entity/work/data/5215127768#Topic/mobile_phones_consumer_user_guides> ; # Mobile phones: consumer/user guides
    schema:about <http://experiment.worldcat.org/entity/work/data/5215127768#Topic/computers_programming_parallel> ; # Computers--Programming--Parallel
    schema:about <http://experiment.worldcat.org/entity/work/data/5215127768#Topic/parallel_processing> ; # Parallel processing
    schema:about <http://experiment.worldcat.org/entity/work/data/5215127768#Topic/rust> ; # Rust
    schema:about <http://dewey.info/class/005.133/e23/> ;
    schema:about <http://experiment.worldcat.org/entity/work/data/5215127768#Topic/programming_&_scripting_languages_general> ; # Programming & scripting languages: general
    schema:about <http://experiment.worldcat.org/entity/work/data/5215127768#Topic/computers_hardware_handheld_devices> ; # Computers--Hardware--Handheld Devices
    schema:about <http://experiment.worldcat.org/entity/work/data/5215127768#Topic/programming_languages> ; # Programming languages
    schema:about <http://experiment.worldcat.org/entity/work/data/5215127768#Topic/computers_programming_languages_c> ; # Computers--Programming Languages--C
    schema:bookFormat schema:EBook ;
    schema:creator <http://experiment.worldcat.org/entity/work/data/5215127768#Person/l_troutwine_brian> ; # Brian L. Troutwine
    schema:datePublished "2018" ;
    schema:description "Writing safe and correct parallel programs is tough. Reasoning about concurrent memory modification is tough; efficiently exploiting the modern computing environment (with its multi-layered caches and deep execution pipelines) is also tough. Most systems programming languages add a further complication: unsafe memory access. The burden on you ..."@en ;
    schema:description "Cover; Title Page; Copyright and Credits; Dedication; Packt Upsell; Contributors; Table of Contents; Preface; Chapter 1: Preliminaries -- Machine Architecture and Getting Started with Rust; Technical requirements; The machine; The CPU; Memory and caches; Memory model; Getting set up; The interesting part; Debugging Rust programs; Summary; Further reading; Chapter 2: Sequential Rust Performance and Testing; Technical requirements; Diminishing returns; Performance; Standard library HashMap; Naive HashMap; Testing with QuickCheck; Testing with American Fuzzy Lop."@en ;
    schema:exampleOfWork <http://worldcat.org/entity/work/id/5215127768> ;
    schema:genre "Electronic books"@en ;
    schema:inLanguage "en" ;
    schema:isSimilarTo <http://worldcat.org/entity/work/data/5215127768#CreativeWork/hands_on_concurrency_with_rust_confidently_build_memory_safe_parallel_and_efficient_software_in_rust> ;
    schema:name "Hands-On Concurrency with Rust : Confidently build memory-safe, parallel, and efficient software in Rust."@en ;
    schema:productID "1039680680" ;
    schema:publication <http://www.worldcat.org/title/-/oclc/1039680680#PublicationEvent/birmingham_packt_publishing_2018> ;
    schema:publisher <http://experiment.worldcat.org/entity/work/data/5215127768#Agent/packt_publishing> ; # Packt Publishing
    schema:url <https://ebookcentral.proquest.com/lib/liverpool/detail.action?docID=5405682> ;
    schema:url "https://img1.od-cdn.com/ImageType-100/6135-1/{A740B3DF-D89E-48FB-BA3B-50487B0ADD77}Img100.jpg" ;
    schema:url <http://www.vlebooks.com/vleweb/product/openreader?id=none&isbn=9781788478359> ;
    schema:url <https://samples.overdrive.com/?crid=a740b3df-d89e-48fb-ba3b-50487b0add77&.epub-sample.overdrive.com> ;
    schema:url <http://public.eblib.com/choice/publicfullrecord.aspx?p=5405682> ;
    schema:url <https://nls.ldls.org.uk/welcome.html?ark:/81055/vdc_100059735471.0x000001> ;
    schema:url <http://public.ebookcentral.proquest.com/choice/publicfullrecord.aspx?p=5405682> ;
    schema:url <https://www.overdrive.com/search?q=A740B3DF-D89E-48FB-BA3B-50487B0ADD77> ;
    schema:workExample <http://worldcat.org/isbn/9781788478359> ;
    wdrs:describedby <http://www.worldcat.org/title/-/oclc/1039680680> ;
    .


Related Entities

<http://experiment.worldcat.org/entity/work/data/5215127768#Agent/packt_publishing> # Packt Publishing
    a bgn:Agent ;
    schema:name "Packt Publishing" ;
    .

<http://experiment.worldcat.org/entity/work/data/5215127768#Person/l_troutwine_brian> # Brian L. Troutwine
    a schema:Person ;
    schema:familyName "L. Troutwine" ;
    schema:givenName "Brian" ;
    schema:name "Brian L. Troutwine" ;
    .

<http://experiment.worldcat.org/entity/work/data/5215127768#Topic/computers_hardware_handheld_devices> # Computers--Hardware--Handheld Devices
    a schema:Intangible ;
    schema:name "Computers--Hardware--Handheld Devices"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/5215127768#Topic/computers_programming_languages_c> # Computers--Programming Languages--C
    a schema:Intangible ;
    schema:name "Computers--Programming Languages--C"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/5215127768#Topic/computers_programming_parallel> # Computers--Programming--Parallel
    a schema:Intangible ;
    schema:name "Computers--Programming--Parallel"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/5215127768#Topic/mobile_phones_consumer_user_guides> # Mobile phones: consumer/user guides
    a schema:Intangible ;
    schema:name "Mobile phones: consumer/user guides"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/5215127768#Topic/parallel_processing> # Parallel processing
    a schema:Intangible ;
    schema:name "Parallel processing"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/5215127768#Topic/portable_&_handheld_devices_consumer_user_guides> # Portable & handheld devices: consumer/user guides
    a schema:Intangible ;
    schema:name "Portable & handheld devices: consumer/user guides"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/5215127768#Topic/programming_&_scripting_languages_general> # Programming & scripting languages: general
    a schema:Intangible ;
    schema:name "Programming & scripting languages: general"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/5215127768#Topic/programming_languages> # Programming languages
    a schema:Intangible ;
    schema:name "Programming languages"@en ;
    .

<http://worldcat.org/entity/work/data/5215127768#CreativeWork/hands_on_concurrency_with_rust_confidently_build_memory_safe_parallel_and_efficient_software_in_rust>
    a schema:CreativeWork ;
    rdfs:label "Hands-On Concurrency with Rust : Confidently build memory-safe, parallel, and efficient software in Rust." ;
    schema:description "Print version:" ;
    schema:isSimilarTo <http://www.worldcat.org/oclc/1039680680> ; # Hands-On Concurrency with Rust : Confidently build memory-safe, parallel, and efficient software in Rust.
    .

<http://worldcat.org/isbn/9781788478359>
    a schema:ProductModel ;
    schema:isbn "1788478355" ;
    schema:isbn "9781788478359" ;
    .

<http://www.worldcat.org/title/-/oclc/1039680680>
    a genont:InformationResource, genont:ContentTypeGenericResource ;
    schema:about <http://www.worldcat.org/oclc/1039680680> ; # Hands-On Concurrency with Rust : Confidently build memory-safe, parallel, and efficient software in Rust.
    schema:dateModified "2019-05-11" ;
    void:inDataset <http://purl.oclc.org/dataset/WorldCat> ;
    .


Content-negotiable representations

Close Window

Please sign in to WorldCat 

Don't have an account? You can easily create a free account.