Hands-On Concurrency with Rust : (Record no. 2355)
[ view plain ]
000 -LEADER | |
---|---|
fixed length control field | 06632nam a22004573i 4500 |
001 - CONTROL NUMBER | |
control field | EBC5405682 |
003 - CONTROL NUMBER IDENTIFIER | |
control field | MiAaPQ |
005 - DATE AND TIME OF LATEST TRANSACTION | |
control field | 20240724113213.0 |
006 - FIXED-LENGTH DATA ELEMENTS--ADDITIONAL MATERIAL CHARACTERISTICS | |
fixed length control field | m o d | |
007 - PHYSICAL DESCRIPTION FIXED FIELD--GENERAL INFORMATION | |
fixed length control field | cr cnu|||||||| |
008 - FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION | |
fixed length control field | 240724s2018 xx o ||||0 eng d |
020 ## - INTERNATIONAL STANDARD BOOK NUMBER | |
International Standard Book Number | 9781788478359 |
Qualifying information | (electronic bk.) |
020 ## - INTERNATIONAL STANDARD BOOK NUMBER | |
Canceled/invalid ISBN | 9781788399975 |
035 ## - SYSTEM CONTROL NUMBER | |
System control number | (MiAaPQ)EBC5405682 |
035 ## - SYSTEM CONTROL NUMBER | |
System control number | (Au-PeEL)EBL5405682 |
035 ## - SYSTEM CONTROL NUMBER | |
System control number | (OCoLC)1039680680 |
040 ## - CATALOGING SOURCE | |
Original cataloging agency | MiAaPQ |
Language of cataloging | eng |
Description conventions | rda |
-- | pn |
Transcribing agency | MiAaPQ |
Modifying agency | MiAaPQ |
050 #4 - LIBRARY OF CONGRESS CALL NUMBER | |
Classification number | QA76.73.R87 .T768 2018 |
082 0# - DEWEY DECIMAL CLASSIFICATION NUMBER | |
Classification number | 005.133 |
100 1# - MAIN ENTRY--PERSONAL NAME | |
Personal name | L. Troutwine, Brian. |
245 10 - TITLE STATEMENT | |
Title | Hands-On Concurrency with Rust : |
Remainder of title | Confidently Build Memory-Safe, Parallel, and Efficient Software in Rust. |
250 ## - EDITION STATEMENT | |
Edition statement | 1st ed. |
264 #1 - PRODUCTION, PUBLICATION, DISTRIBUTION, MANUFACTURE, AND COPYRIGHT NOTICE | |
Place of production, publication, distribution, manufacture | Birmingham : |
Name of producer, publisher, distributor, manufacturer | Packt Publishing, Limited, |
Date of production, publication, distribution, manufacture, or copyright notice | 2018. |
264 #4 - PRODUCTION, PUBLICATION, DISTRIBUTION, MANUFACTURE, AND COPYRIGHT NOTICE | |
Date of production, publication, distribution, manufacture, or copyright notice | ©2018. |
300 ## - PHYSICAL DESCRIPTION | |
Extent | 1 online resource (453 pages) |
336 ## - CONTENT TYPE | |
Content type term | text |
Content type code | txt |
Source | rdacontent |
337 ## - MEDIA TYPE | |
Media type term | computer |
Media type code | c |
Source | rdamedia |
338 ## - CARRIER TYPE | |
Carrier type term | online resource |
Carrier type code | cr |
Source | rdacarrier |
505 0# - FORMATTED CONTENTS NOTE | |
Formatted contents note | 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 Criterion -- Inspecting 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 threads -- The 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. |
505 8# - FORMATTED CONTENTS NOTE | |
Formatted contents note | The Receiver -- The Sender -- Testing concurrent data structures -- QuickCheck 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 Memory -- Technical 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 -- Thread pooling -- Slowloris - attacking thread-per-connection servers -- The server -- The client -- A thread-pooling server -- Looking into thread pool -- The Ethernet sniffer -- Iterators -- Smallcheck iteration -- rayon - parallel iterators -- Data parallelism and OS processes - evolving corewars players -- Corewars -- Feruscore - a Corewars evolver -- Representing the domain -- Exploring the source -- Instructions -- Individuals -- Mutation and reproduction -- Competition - calling out to pMARS -- Main -- Running feruscore -- Summary -- Further reading. |
505 8# - FORMATTED CONTENTS NOTE | |
Formatted contents note | Chapter 9: FFI and Embedding - Combining Rust and Other Languages -- Embedding C into Rust - feruscore without processes -- The MARS C interface -- Creating C-structs from Rust -- Calling C functions -- Managing cross-language ownership -- Running the simulation -- Fuzzing the simulation -- The feruscore executable -- Embedding Lua into Rust -- Embedding Rust -- Into C -- The Rust side -- The C side -- Into Python -- Into Erlang/Elixir -- Summary -- Further reading -- Chapter 10: Futurism - Near-Term Rust -- Technical requirements -- Near-term improvements -- SIMD -- Hex encoding -- Futures and async/await -- Specialization -- Interesting projects -- Fuzzing -- Seer, a symbolic execution engine for Rust -- The community -- Should I use unsafe? -- Summary -- Further reading -- Other Books You May Enjoy -- Index. |
520 ## - SUMMARY, ETC. | |
Summary, etc. | 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,. |
588 ## - SOURCE OF DESCRIPTION NOTE | |
Source of description note | Description based on publisher supplied metadata and other sources. |
590 ## - LOCAL NOTE (RLIN) | |
Local note | Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2024. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries. |
650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM | |
Topical term or geographic name entry element | Rust (Computer programming language). |
650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM | |
Topical term or geographic name entry element | Programming languages. |
655 #4 - INDEX TERM--GENRE/FORM | |
Genre/form data or focus term | Electronic books. |
776 08 - ADDITIONAL PHYSICAL FORM ENTRY | |
Relationship information | Print version: |
Main entry heading | L. Troutwine, Brian |
Title | Hands-On Concurrency with Rust |
Place, publisher, and date of publication | Birmingham : Packt Publishing, Limited,c2018 |
International Standard Book Number | 9781788399975 |
797 2# - LOCAL ADDED ENTRY--CORPORATE NAME (RLIN) | |
Corporate name or jurisdiction name as entry element | ProQuest (Firm) |
856 40 - ELECTRONIC LOCATION AND ACCESS | |
Uniform Resource Identifier | <a href="https://ebookcentral.proquest.com/lib/orpp/detail.action?docID=5405682">https://ebookcentral.proquest.com/lib/orpp/detail.action?docID=5405682</a> |
Public note | Click to View |
No items available.