Learning concurrency in Kotlin :: build highly efficient and robust applications /
The requirements of modern day applications are scalability, speed and making the most use of hardware. Kotlin provides immense support for concurrency. This book addresses the challenges for the design and implementation of concurrent code and shows you how to write lock-free concurrent code taking...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Elektronisch E-Book |
Sprache: | English |
Veröffentlicht: |
Birmingham, UK :
Packt Publishing,
2018.
|
Schlagworte: | |
Online-Zugang: | Volltext |
Zusammenfassung: | The requirements of modern day applications are scalability, speed and making the most use of hardware. Kotlin provides immense support for concurrency. This book addresses the challenges for the design and implementation of concurrent code and shows you how to write lock-free concurrent code taking advantage of Kotlin's concurrency support. |
Beschreibung: | 1 online resource : illustrations |
ISBN: | 9781788626729 1788626729 |
Internformat
MARC
LEADER | 00000cam a2200000 i 4500 | ||
---|---|---|---|
001 | ZDB-4-EBA-on1050169896 | ||
003 | OCoLC | ||
005 | 20241004212047.0 | ||
006 | m o d | ||
007 | cr unu|||||||| | ||
008 | 180829s2018 enka o 000 0 eng d | ||
040 | |a UMI |b eng |e rda |e pn |c UMI |d OCLCF |d STF |d TEFOD |d CEF |d G3B |d TEFOD |d EBLCP |d MERUC |d UAB |d OCLCQ |d K6U |d N$T |d OCLCO |d NLW |d OCLCO |d NZAUC |d OCLCQ |d OCLCO |d OCLCL |d OCLCQ |d SXB | ||
020 | |a 9781788626729 |q (electronic bk.) | ||
020 | |a 1788626729 |q (electronic bk.) | ||
020 | |z 9781788627160 | ||
035 | |a (OCoLC)1050169896 | ||
037 | |a CL0500000988 |b Safari Books Online | ||
037 | |a 624C5C91-0A03-4D48-BBE4-8C47C29CAACE |b OverDrive, Inc. |n http://www.overdrive.com | ||
050 | 4 | |a QA76.76.A65 | |
082 | 7 | |a 005.365 |2 23 | |
049 | |a MAIN | ||
100 | 1 | |a Castiblanco Torres, Miguel Angel, |e author. | |
245 | 1 | 0 | |a Learning concurrency in Kotlin : |b build highly efficient and robust applications / |c Miguel Angel Castiblanco Torres. |
264 | 1 | |a Birmingham, UK : |b Packt Publishing, |c 2018. | |
300 | |a 1 online resource : |b illustrations | ||
336 | |a text |b txt |2 rdacontent | ||
337 | |a computer |b c |2 rdamedia | ||
338 | |a online resource |b cr |2 rdacarrier | ||
588 | 0 | |a Online resource; title from title page (Safari, viewed August 27, 2018). | |
505 | 0 | |a Cover; Title Page; Copyright and Credits; Packt Upsell; Contributors; Table of Contents; Preface; Chapter 1: Hello, Concurrent World!; Processes, threads, and coroutines; Processes; Threads; Coroutines; Putting things together; Introduction to concurrency; Concurrency is not parallelism; CPU-bound and I/O-bound; CPU-bound; I/O-bound; Concurrency versus parallelism in CPU-bound algorithms; Single-core execution; Parallel execution; Concurrency versus parallelism in I/O-bound algorithms; Why concurrency is often feared; Race conditions; Atomicity violation; Deadlocks; Livelocks | |
505 | 8 | |a Concurrency in KotlinNon-blocking; Being explicit; Readable; Leveraged; Flexible; Concepts and terminology; Suspending computations; Suspending functions; Suspending lambdas; Coroutine dispatcher; Coroutine builders; Summary; Chapter 2: Coroutines in Action; Downloading and installing Android Studio; Creating a Kotlin project; Adding support for coroutines; Android's UI thread; CalledFromWrongThreadException; NetworkOnMainThreadException; Requesting in the background, updating in the UI thread; Creating a thread; CoroutineDispatcher; Attaching a coroutine to a dispatcher | |
505 | 8 | |a Starting a coroutine with asyncStarting a coroutine with launch; Using a specific dispatcher when starting the coroutine; Adding networking permissions; Creating a coroutine to call a service; Adding UI elements; What happens when the UI is blocked; Displaying the amount of news that were processed; Using a UI dispatcher; Platform-specific UI libraries; Adding the dependency; Using Android's UI coroutine dispatcher; Creating an asynchronous function to hold the request ... or not; A synchronous function wrapped in an asynchronous caller; An asynchronous function with a predefined dispatcher | |
505 | 8 | |a An asynchronous function with a flexible dispatcherHow to decide which option is better; Summary; Chapter 3: Life Cycle and Error Handling; Job and Deferred; Job; Exception handling; Life cycle; New; Active; Canceling; Cancelled; Completed; Determining the current state of a Job; Deferred; Exception handling; States move in one direction only; A note on final states; RSS- Reading from multiple feeds concurrently; Supporting a list of feeds; Creating a thread pool; Fetching the data concurrently; Merging the responses; Testing the concurrent requests; Non-happy path- Unexpected crash | |
505 | 8 | |a Having deferred store the exceptionDon't ignore the exception!; Summary; Chapter 4: Suspending Functions and the Coroutine Context; Improving the UI of the RSS Reader; Giving each feed a name; Fetching more information about the articles from the feed; Adding a scrollable list for the articles; Layout for the individual articles; Adapter to map the information; Adding a ViewHolder; Mapping the data; onCreateViewHolder; onBindViewHolder; getItemCount; Allowing the incremental addition of articles to the adapter; Connecting the adapter to the activity; Testing the new UI; Sanitizing the data | |
520 | |a The requirements of modern day applications are scalability, speed and making the most use of hardware. Kotlin provides immense support for concurrency. This book addresses the challenges for the design and implementation of concurrent code and shows you how to write lock-free concurrent code taking advantage of Kotlin's concurrency support. | ||
650 | 0 | |a Application software |x Development. |0 http://id.loc.gov/authorities/subjects/sh95009362 | |
650 | 0 | |a Electronic data processing. |0 http://id.loc.gov/authorities/subjects/sh85042288 | |
650 | 0 | |a Functional programming (Computer science) |0 http://id.loc.gov/authorities/subjects/sh87007844 | |
650 | 0 | |a Mobile apps. |0 http://id.loc.gov/authorities/subjects/sh2014000897 | |
650 | 6 | |a Logiciels d'application |x Développement. | |
650 | 6 | |a Programmation fonctionnelle. | |
650 | 6 | |a Applications mobiles. | |
650 | 7 | |a Object-oriented programming (OOP). |2 bicssc | |
650 | 7 | |a Parallel processing. |2 bicssc | |
650 | 7 | |a Programming & scripting languages: general. |2 bicssc | |
650 | 7 | |a Computers |x Programming |x Object Oriented. |2 bisacsh | |
650 | 7 | |a Computers |x Programming |x Parallel. |2 bisacsh | |
650 | 7 | |a Computers |x Programming Languages |x Java. |2 bisacsh | |
650 | 7 | |a Application software |x Development |2 fast | |
650 | 7 | |a Electronic data processing |2 fast | |
650 | 7 | |a Functional programming (Computer science) |2 fast | |
650 | 7 | |a Mobile apps |2 fast | |
655 | 4 | |a Electronic book. | |
758 | |i has work: |a Learning Concurrency in Kotlin (Text) |1 https://id.oclc.org/worldcat/entity/E39PD3Qp6Cf4Qv9pMbgG7rQxym |4 https://id.oclc.org/worldcat/ontology/hasWork | ||
856 | 4 | 0 | |l FWS01 |p ZDB-4-EBA |q FWS_PDA_EBA |u https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1860847 |3 Volltext |
938 | |a ProQuest Ebook Central |b EBLB |n EBL5520892 | ||
938 | |a EBSCOhost |b EBSC |n 1860847 | ||
994 | |a 92 |b GEBAY | ||
912 | |a ZDB-4-EBA | ||
049 | |a DE-863 |
Datensatz im Suchindex
DE-BY-FWS_katkey | ZDB-4-EBA-on1050169896 |
---|---|
_version_ | 1816882469823053824 |
adam_text | |
any_adam_object | |
author | Castiblanco Torres, Miguel Angel |
author_facet | Castiblanco Torres, Miguel Angel |
author_role | aut |
author_sort | Castiblanco Torres, Miguel Angel |
author_variant | t m a c tma tmac |
building | Verbundindex |
bvnumber | localFWS |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.A65 |
callnumber-search | QA76.76.A65 |
callnumber-sort | QA 276.76 A65 |
callnumber-subject | QA - Mathematics |
collection | ZDB-4-EBA |
contents | Cover; Title Page; Copyright and Credits; Packt Upsell; Contributors; Table of Contents; Preface; Chapter 1: Hello, Concurrent World!; Processes, threads, and coroutines; Processes; Threads; Coroutines; Putting things together; Introduction to concurrency; Concurrency is not parallelism; CPU-bound and I/O-bound; CPU-bound; I/O-bound; Concurrency versus parallelism in CPU-bound algorithms; Single-core execution; Parallel execution; Concurrency versus parallelism in I/O-bound algorithms; Why concurrency is often feared; Race conditions; Atomicity violation; Deadlocks; Livelocks Concurrency in KotlinNon-blocking; Being explicit; Readable; Leveraged; Flexible; Concepts and terminology; Suspending computations; Suspending functions; Suspending lambdas; Coroutine dispatcher; Coroutine builders; Summary; Chapter 2: Coroutines in Action; Downloading and installing Android Studio; Creating a Kotlin project; Adding support for coroutines; Android's UI thread; CalledFromWrongThreadException; NetworkOnMainThreadException; Requesting in the background, updating in the UI thread; Creating a thread; CoroutineDispatcher; Attaching a coroutine to a dispatcher Starting a coroutine with asyncStarting a coroutine with launch; Using a specific dispatcher when starting the coroutine; Adding networking permissions; Creating a coroutine to call a service; Adding UI elements; What happens when the UI is blocked; Displaying the amount of news that were processed; Using a UI dispatcher; Platform-specific UI libraries; Adding the dependency; Using Android's UI coroutine dispatcher; Creating an asynchronous function to hold the request ... or not; A synchronous function wrapped in an asynchronous caller; An asynchronous function with a predefined dispatcher An asynchronous function with a flexible dispatcherHow to decide which option is better; Summary; Chapter 3: Life Cycle and Error Handling; Job and Deferred; Job; Exception handling; Life cycle; New; Active; Canceling; Cancelled; Completed; Determining the current state of a Job; Deferred; Exception handling; States move in one direction only; A note on final states; RSS- Reading from multiple feeds concurrently; Supporting a list of feeds; Creating a thread pool; Fetching the data concurrently; Merging the responses; Testing the concurrent requests; Non-happy path- Unexpected crash Having deferred store the exceptionDon't ignore the exception!; Summary; Chapter 4: Suspending Functions and the Coroutine Context; Improving the UI of the RSS Reader; Giving each feed a name; Fetching more information about the articles from the feed; Adding a scrollable list for the articles; Layout for the individual articles; Adapter to map the information; Adding a ViewHolder; Mapping the data; onCreateViewHolder; onBindViewHolder; getItemCount; Allowing the incremental addition of articles to the adapter; Connecting the adapter to the activity; Testing the new UI; Sanitizing the data |
ctrlnum | (OCoLC)1050169896 |
dewey-full | 005.365 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.365 |
dewey-search | 005.365 |
dewey-sort | 15.365 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Electronic eBook |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>06186cam a2200661 i 4500</leader><controlfield tag="001">ZDB-4-EBA-on1050169896</controlfield><controlfield tag="003">OCoLC</controlfield><controlfield tag="005">20241004212047.0</controlfield><controlfield tag="006">m o d </controlfield><controlfield tag="007">cr unu||||||||</controlfield><controlfield tag="008">180829s2018 enka o 000 0 eng d</controlfield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">UMI</subfield><subfield code="b">eng</subfield><subfield code="e">rda</subfield><subfield code="e">pn</subfield><subfield code="c">UMI</subfield><subfield code="d">OCLCF</subfield><subfield code="d">STF</subfield><subfield code="d">TEFOD</subfield><subfield code="d">CEF</subfield><subfield code="d">G3B</subfield><subfield code="d">TEFOD</subfield><subfield code="d">EBLCP</subfield><subfield code="d">MERUC</subfield><subfield code="d">UAB</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">K6U</subfield><subfield code="d">N$T</subfield><subfield code="d">OCLCO</subfield><subfield code="d">NLW</subfield><subfield code="d">OCLCO</subfield><subfield code="d">NZAUC</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCL</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">SXB</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781788626729</subfield><subfield code="q">(electronic bk.)</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1788626729</subfield><subfield code="q">(electronic bk.)</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="z">9781788627160</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1050169896</subfield></datafield><datafield tag="037" ind1=" " ind2=" "><subfield code="a">CL0500000988</subfield><subfield code="b">Safari Books Online</subfield></datafield><datafield tag="037" ind1=" " ind2=" "><subfield code="a">624C5C91-0A03-4D48-BBE4-8C47C29CAACE</subfield><subfield code="b">OverDrive, Inc.</subfield><subfield code="n">http://www.overdrive.com</subfield></datafield><datafield tag="050" ind1=" " ind2="4"><subfield code="a">QA76.76.A65</subfield></datafield><datafield tag="082" ind1="7" ind2=" "><subfield code="a">005.365</subfield><subfield code="2">23</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">MAIN</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Castiblanco Torres, Miguel Angel,</subfield><subfield code="e">author.</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Learning concurrency in Kotlin :</subfield><subfield code="b">build highly efficient and robust applications /</subfield><subfield code="c">Miguel Angel Castiblanco Torres.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Birmingham, UK :</subfield><subfield code="b">Packt Publishing,</subfield><subfield code="c">2018.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 online resource :</subfield><subfield code="b">illustrations</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="a">text</subfield><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="a">computer</subfield><subfield code="b">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="a">online resource</subfield><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="588" ind1="0" ind2=" "><subfield code="a">Online resource; title from title page (Safari, viewed August 27, 2018).</subfield></datafield><datafield tag="505" ind1="0" ind2=" "><subfield code="a">Cover; Title Page; Copyright and Credits; Packt Upsell; Contributors; Table of Contents; Preface; Chapter 1: Hello, Concurrent World!; Processes, threads, and coroutines; Processes; Threads; Coroutines; Putting things together; Introduction to concurrency; Concurrency is not parallelism; CPU-bound and I/O-bound; CPU-bound; I/O-bound; Concurrency versus parallelism in CPU-bound algorithms; Single-core execution; Parallel execution; Concurrency versus parallelism in I/O-bound algorithms; Why concurrency is often feared; Race conditions; Atomicity violation; Deadlocks; Livelocks</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Concurrency in KotlinNon-blocking; Being explicit; Readable; Leveraged; Flexible; Concepts and terminology; Suspending computations; Suspending functions; Suspending lambdas; Coroutine dispatcher; Coroutine builders; Summary; Chapter 2: Coroutines in Action; Downloading and installing Android Studio; Creating a Kotlin project; Adding support for coroutines; Android's UI thread; CalledFromWrongThreadException; NetworkOnMainThreadException; Requesting in the background, updating in the UI thread; Creating a thread; CoroutineDispatcher; Attaching a coroutine to a dispatcher</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Starting a coroutine with asyncStarting a coroutine with launch; Using a specific dispatcher when starting the coroutine; Adding networking permissions; Creating a coroutine to call a service; Adding UI elements; What happens when the UI is blocked; Displaying the amount of news that were processed; Using a UI dispatcher; Platform-specific UI libraries; Adding the dependency; Using Android's UI coroutine dispatcher; Creating an asynchronous function to hold the request ... or not; A synchronous function wrapped in an asynchronous caller; An asynchronous function with a predefined dispatcher</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">An asynchronous function with a flexible dispatcherHow to decide which option is better; Summary; Chapter 3: Life Cycle and Error Handling; Job and Deferred; Job; Exception handling; Life cycle; New; Active; Canceling; Cancelled; Completed; Determining the current state of a Job; Deferred; Exception handling; States move in one direction only; A note on final states; RSS- Reading from multiple feeds concurrently; Supporting a list of feeds; Creating a thread pool; Fetching the data concurrently; Merging the responses; Testing the concurrent requests; Non-happy path- Unexpected crash</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Having deferred store the exceptionDon't ignore the exception!; Summary; Chapter 4: Suspending Functions and the Coroutine Context; Improving the UI of the RSS Reader; Giving each feed a name; Fetching more information about the articles from the feed; Adding a scrollable list for the articles; Layout for the individual articles; Adapter to map the information; Adding a ViewHolder; Mapping the data; onCreateViewHolder; onBindViewHolder; getItemCount; Allowing the incremental addition of articles to the adapter; Connecting the adapter to the activity; Testing the new UI; Sanitizing the data</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="a">The requirements of modern day applications are scalability, speed and making the most use of hardware. Kotlin provides immense support for concurrency. This book addresses the challenges for the design and implementation of concurrent code and shows you how to write lock-free concurrent code taking advantage of Kotlin's concurrency support.</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Application software</subfield><subfield code="x">Development.</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh95009362</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Electronic data processing.</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh85042288</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Functional programming (Computer science)</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh87007844</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Mobile apps.</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh2014000897</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Logiciels d'application</subfield><subfield code="x">Développement.</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Programmation fonctionnelle.</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Applications mobiles.</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Object-oriented programming (OOP).</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Parallel processing.</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programming & scripting languages: general.</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computers</subfield><subfield code="x">Programming</subfield><subfield code="x">Object Oriented.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computers</subfield><subfield code="x">Programming</subfield><subfield code="x">Parallel.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computers</subfield><subfield code="x">Programming Languages</subfield><subfield code="x">Java.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Application software</subfield><subfield code="x">Development</subfield><subfield code="2">fast</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Electronic data processing</subfield><subfield code="2">fast</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Functional programming (Computer science)</subfield><subfield code="2">fast</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Mobile apps</subfield><subfield code="2">fast</subfield></datafield><datafield tag="655" ind1=" " ind2="4"><subfield code="a">Electronic book.</subfield></datafield><datafield tag="758" ind1=" " ind2=" "><subfield code="i">has work:</subfield><subfield code="a">Learning Concurrency in Kotlin (Text)</subfield><subfield code="1">https://id.oclc.org/worldcat/entity/E39PD3Qp6Cf4Qv9pMbgG7rQxym</subfield><subfield code="4">https://id.oclc.org/worldcat/ontology/hasWork</subfield></datafield><datafield tag="856" ind1="4" ind2="0"><subfield code="l">FWS01</subfield><subfield code="p">ZDB-4-EBA</subfield><subfield code="q">FWS_PDA_EBA</subfield><subfield code="u">https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1860847</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">ProQuest Ebook Central</subfield><subfield code="b">EBLB</subfield><subfield code="n">EBL5520892</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">EBSCOhost</subfield><subfield code="b">EBSC</subfield><subfield code="n">1860847</subfield></datafield><datafield tag="994" ind1=" " ind2=" "><subfield code="a">92</subfield><subfield code="b">GEBAY</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-4-EBA</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-863</subfield></datafield></record></collection> |
genre | Electronic book. |
genre_facet | Electronic book. |
id | ZDB-4-EBA-on1050169896 |
illustrated | Illustrated |
indexdate | 2024-11-27T13:29:07Z |
institution | BVB |
isbn | 9781788626729 1788626729 |
language | English |
oclc_num | 1050169896 |
open_access_boolean | |
owner | MAIN DE-863 DE-BY-FWS |
owner_facet | MAIN DE-863 DE-BY-FWS |
physical | 1 online resource : illustrations |
psigel | ZDB-4-EBA |
publishDate | 2018 |
publishDateSearch | 2018 |
publishDateSort | 2018 |
publisher | Packt Publishing, |
record_format | marc |
spelling | Castiblanco Torres, Miguel Angel, author. Learning concurrency in Kotlin : build highly efficient and robust applications / Miguel Angel Castiblanco Torres. Birmingham, UK : Packt Publishing, 2018. 1 online resource : illustrations text txt rdacontent computer c rdamedia online resource cr rdacarrier Online resource; title from title page (Safari, viewed August 27, 2018). Cover; Title Page; Copyright and Credits; Packt Upsell; Contributors; Table of Contents; Preface; Chapter 1: Hello, Concurrent World!; Processes, threads, and coroutines; Processes; Threads; Coroutines; Putting things together; Introduction to concurrency; Concurrency is not parallelism; CPU-bound and I/O-bound; CPU-bound; I/O-bound; Concurrency versus parallelism in CPU-bound algorithms; Single-core execution; Parallel execution; Concurrency versus parallelism in I/O-bound algorithms; Why concurrency is often feared; Race conditions; Atomicity violation; Deadlocks; Livelocks Concurrency in KotlinNon-blocking; Being explicit; Readable; Leveraged; Flexible; Concepts and terminology; Suspending computations; Suspending functions; Suspending lambdas; Coroutine dispatcher; Coroutine builders; Summary; Chapter 2: Coroutines in Action; Downloading and installing Android Studio; Creating a Kotlin project; Adding support for coroutines; Android's UI thread; CalledFromWrongThreadException; NetworkOnMainThreadException; Requesting in the background, updating in the UI thread; Creating a thread; CoroutineDispatcher; Attaching a coroutine to a dispatcher Starting a coroutine with asyncStarting a coroutine with launch; Using a specific dispatcher when starting the coroutine; Adding networking permissions; Creating a coroutine to call a service; Adding UI elements; What happens when the UI is blocked; Displaying the amount of news that were processed; Using a UI dispatcher; Platform-specific UI libraries; Adding the dependency; Using Android's UI coroutine dispatcher; Creating an asynchronous function to hold the request ... or not; A synchronous function wrapped in an asynchronous caller; An asynchronous function with a predefined dispatcher An asynchronous function with a flexible dispatcherHow to decide which option is better; Summary; Chapter 3: Life Cycle and Error Handling; Job and Deferred; Job; Exception handling; Life cycle; New; Active; Canceling; Cancelled; Completed; Determining the current state of a Job; Deferred; Exception handling; States move in one direction only; A note on final states; RSS- Reading from multiple feeds concurrently; Supporting a list of feeds; Creating a thread pool; Fetching the data concurrently; Merging the responses; Testing the concurrent requests; Non-happy path- Unexpected crash Having deferred store the exceptionDon't ignore the exception!; Summary; Chapter 4: Suspending Functions and the Coroutine Context; Improving the UI of the RSS Reader; Giving each feed a name; Fetching more information about the articles from the feed; Adding a scrollable list for the articles; Layout for the individual articles; Adapter to map the information; Adding a ViewHolder; Mapping the data; onCreateViewHolder; onBindViewHolder; getItemCount; Allowing the incremental addition of articles to the adapter; Connecting the adapter to the activity; Testing the new UI; Sanitizing the data The requirements of modern day applications are scalability, speed and making the most use of hardware. Kotlin provides immense support for concurrency. This book addresses the challenges for the design and implementation of concurrent code and shows you how to write lock-free concurrent code taking advantage of Kotlin's concurrency support. Application software Development. http://id.loc.gov/authorities/subjects/sh95009362 Electronic data processing. http://id.loc.gov/authorities/subjects/sh85042288 Functional programming (Computer science) http://id.loc.gov/authorities/subjects/sh87007844 Mobile apps. http://id.loc.gov/authorities/subjects/sh2014000897 Logiciels d'application Développement. Programmation fonctionnelle. Applications mobiles. Object-oriented programming (OOP). bicssc Parallel processing. bicssc Programming & scripting languages: general. bicssc Computers Programming Object Oriented. bisacsh Computers Programming Parallel. bisacsh Computers Programming Languages Java. bisacsh Application software Development fast Electronic data processing fast Functional programming (Computer science) fast Mobile apps fast Electronic book. has work: Learning Concurrency in Kotlin (Text) https://id.oclc.org/worldcat/entity/E39PD3Qp6Cf4Qv9pMbgG7rQxym https://id.oclc.org/worldcat/ontology/hasWork FWS01 ZDB-4-EBA FWS_PDA_EBA https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1860847 Volltext |
spellingShingle | Castiblanco Torres, Miguel Angel Learning concurrency in Kotlin : build highly efficient and robust applications / Cover; Title Page; Copyright and Credits; Packt Upsell; Contributors; Table of Contents; Preface; Chapter 1: Hello, Concurrent World!; Processes, threads, and coroutines; Processes; Threads; Coroutines; Putting things together; Introduction to concurrency; Concurrency is not parallelism; CPU-bound and I/O-bound; CPU-bound; I/O-bound; Concurrency versus parallelism in CPU-bound algorithms; Single-core execution; Parallel execution; Concurrency versus parallelism in I/O-bound algorithms; Why concurrency is often feared; Race conditions; Atomicity violation; Deadlocks; Livelocks Concurrency in KotlinNon-blocking; Being explicit; Readable; Leveraged; Flexible; Concepts and terminology; Suspending computations; Suspending functions; Suspending lambdas; Coroutine dispatcher; Coroutine builders; Summary; Chapter 2: Coroutines in Action; Downloading and installing Android Studio; Creating a Kotlin project; Adding support for coroutines; Android's UI thread; CalledFromWrongThreadException; NetworkOnMainThreadException; Requesting in the background, updating in the UI thread; Creating a thread; CoroutineDispatcher; Attaching a coroutine to a dispatcher Starting a coroutine with asyncStarting a coroutine with launch; Using a specific dispatcher when starting the coroutine; Adding networking permissions; Creating a coroutine to call a service; Adding UI elements; What happens when the UI is blocked; Displaying the amount of news that were processed; Using a UI dispatcher; Platform-specific UI libraries; Adding the dependency; Using Android's UI coroutine dispatcher; Creating an asynchronous function to hold the request ... or not; A synchronous function wrapped in an asynchronous caller; An asynchronous function with a predefined dispatcher An asynchronous function with a flexible dispatcherHow to decide which option is better; Summary; Chapter 3: Life Cycle and Error Handling; Job and Deferred; Job; Exception handling; Life cycle; New; Active; Canceling; Cancelled; Completed; Determining the current state of a Job; Deferred; Exception handling; States move in one direction only; A note on final states; RSS- Reading from multiple feeds concurrently; Supporting a list of feeds; Creating a thread pool; Fetching the data concurrently; Merging the responses; Testing the concurrent requests; Non-happy path- Unexpected crash Having deferred store the exceptionDon't ignore the exception!; Summary; Chapter 4: Suspending Functions and the Coroutine Context; Improving the UI of the RSS Reader; Giving each feed a name; Fetching more information about the articles from the feed; Adding a scrollable list for the articles; Layout for the individual articles; Adapter to map the information; Adding a ViewHolder; Mapping the data; onCreateViewHolder; onBindViewHolder; getItemCount; Allowing the incremental addition of articles to the adapter; Connecting the adapter to the activity; Testing the new UI; Sanitizing the data Application software Development. http://id.loc.gov/authorities/subjects/sh95009362 Electronic data processing. http://id.loc.gov/authorities/subjects/sh85042288 Functional programming (Computer science) http://id.loc.gov/authorities/subjects/sh87007844 Mobile apps. http://id.loc.gov/authorities/subjects/sh2014000897 Logiciels d'application Développement. Programmation fonctionnelle. Applications mobiles. Object-oriented programming (OOP). bicssc Parallel processing. bicssc Programming & scripting languages: general. bicssc Computers Programming Object Oriented. bisacsh Computers Programming Parallel. bisacsh Computers Programming Languages Java. bisacsh Application software Development fast Electronic data processing fast Functional programming (Computer science) fast Mobile apps fast |
subject_GND | http://id.loc.gov/authorities/subjects/sh95009362 http://id.loc.gov/authorities/subjects/sh85042288 http://id.loc.gov/authorities/subjects/sh87007844 http://id.loc.gov/authorities/subjects/sh2014000897 |
title | Learning concurrency in Kotlin : build highly efficient and robust applications / |
title_auth | Learning concurrency in Kotlin : build highly efficient and robust applications / |
title_exact_search | Learning concurrency in Kotlin : build highly efficient and robust applications / |
title_full | Learning concurrency in Kotlin : build highly efficient and robust applications / Miguel Angel Castiblanco Torres. |
title_fullStr | Learning concurrency in Kotlin : build highly efficient and robust applications / Miguel Angel Castiblanco Torres. |
title_full_unstemmed | Learning concurrency in Kotlin : build highly efficient and robust applications / Miguel Angel Castiblanco Torres. |
title_short | Learning concurrency in Kotlin : |
title_sort | learning concurrency in kotlin build highly efficient and robust applications |
title_sub | build highly efficient and robust applications / |
topic | Application software Development. http://id.loc.gov/authorities/subjects/sh95009362 Electronic data processing. http://id.loc.gov/authorities/subjects/sh85042288 Functional programming (Computer science) http://id.loc.gov/authorities/subjects/sh87007844 Mobile apps. http://id.loc.gov/authorities/subjects/sh2014000897 Logiciels d'application Développement. Programmation fonctionnelle. Applications mobiles. Object-oriented programming (OOP). bicssc Parallel processing. bicssc Programming & scripting languages: general. bicssc Computers Programming Object Oriented. bisacsh Computers Programming Parallel. bisacsh Computers Programming Languages Java. bisacsh Application software Development fast Electronic data processing fast Functional programming (Computer science) fast Mobile apps fast |
topic_facet | Application software Development. Electronic data processing. Functional programming (Computer science) Mobile apps. Logiciels d'application Développement. Programmation fonctionnelle. Applications mobiles. Object-oriented programming (OOP). Parallel processing. Programming & scripting languages: general. Computers Programming Object Oriented. Computers Programming Parallel. Computers Programming Languages Java. Application software Development Electronic data processing Mobile apps Electronic book. |
url | https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1860847 |
work_keys_str_mv | AT castiblancotorresmiguelangel learningconcurrencyinkotlinbuildhighlyefficientandrobustapplications |