Programming with POSIX threads:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boston, Mass. ; Munich [u.a.]
Addison-Wesley
2007
|
Ausgabe: | 20. print. |
Schriftenreihe: | Addison-Wesley professional computing series
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XVIII, 381 S. Ill. |
ISBN: | 0201633922 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV023416498 | ||
003 | DE-604 | ||
005 | 20110516 | ||
007 | t | ||
008 | 080725s2007 a||| |||| 00||| eng d | ||
020 | |a 0201633922 |9 0-201-63392-2 | ||
035 | |a (OCoLC)315679029 | ||
035 | |a (DE-599)BVBBV023416498 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-573 |a DE-473 |a DE-860 | ||
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
100 | 1 | |a Butenhof, David R. |d 1956- |e Verfasser |0 (DE-588)173094554 |4 aut | |
245 | 1 | 0 | |a Programming with POSIX threads |c David R. Butenhof |
250 | |a 20. print. | ||
264 | 1 | |a Boston, Mass. ; Munich [u.a.] |b Addison-Wesley |c 2007 | |
300 | |a XVIII, 381 S. |b Ill. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Addison-Wesley professional computing series | |
650 | 0 | 7 | |a POSIX |0 (DE-588)4369024-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Thread |0 (DE-588)4377482-9 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a POSIX |0 (DE-588)4369024-5 |D s |
689 | 0 | 1 | |a Thread |0 (DE-588)4377482-9 |D s |
689 | 0 | 2 | |a Programmierung |0 (DE-588)4076370-5 |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=016599015&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-016599015 |
Datensatz im Suchindex
_version_ | 1804137807118073856 |
---|---|
adam_text | Contents
List of Example Programs
................................... xii
Preface
................................................. xv
Intended audience
................................... xvi
About the author
.................................... xvi
Acknowledgments
...................................xvii
1
Introduction
................................ 1
J.I The bailingprogrammers
............................. 3
1.2
Definitions and terminology
............................. 4
1.2.1
Asynchronous
................................. 4
1.2.2
Concurrency
.................................. 4
1.2.3
Uniprocessor and multiprocessor
.................. 5
1.2.4
Parallelism
................................... 5
1.2.5
Thread safety and reentrancy
..................... 6
1.2.6
Concurrency control functions
..................... 7
1.3
Asynchronous programming is intuitive
..................... 8
1.3.1 ...
because UNIX is asynchronous
................. 9
1.3.2 . . .
because the world is asynchronous
.............. 11
1.4
About the examples in this book
......................... 12
1.5
Asynchronous programming, by example
.................. 13
1.5.1
The baseline, synchronous version
................. 14
1.5.2
Aversion using multiple processes
................. 15
1.5.3
A version using multiple threads
................... 17
1.5.4
Summary
.................................... 19
1.6
Benefits of threading
.................................. 20
1.6.1
Parallelism
................................... 20
1.6.2
Concurrency
.................................. 22
1.6.3
Programming model
............................. 24
1.7
Costs of threading
....................................25
1.7.1
Computing overhead
............................ 26
1.7.2
Programming discipline
.......................... 26
1.7.3
Harder to debug
............................... 27
1.8
To thread or not to thread?
.............................28
1.9
POSĽX
thread concepts
................................29
1.9.1
Architectural overview
........................... 30
1.9.2
Types and interfaces
............................ 30
vii
viii Contents
1.9.3
Checking for errors
............................. 31
2
Threads
....................................35
2.1
Creating and using threads
............................ 35
2.2
The life of a thread
................................... 39
2.2.1
Creation
..................................... 40
2.2.2
Startup
..................................... 41
2.2.3
Running and blocking
.......................... 42
2.2.4
Termination
.................................. 43
2.2.5
Recycling
.................................... 44
3
Synchronization
.............................45
3.1
Invariants, critical sections, and predicates
................ 45
3.2
Mutexes
............................................ 47
3.2.1
Creating and destroying a mutex
.................. 49
3.2.2
Locking and unlocking a mutex
................... 52
3.2.2.1
Nonblocking mutex locks
.................. 58
3.2.3
Using mutexes for atomicity
...................... 61
3.2.4
Sizing a mutex to fit the job
...................... 62
3.2.5
Using more than one mutex
...................... 63
3.2.5.1
Lock hierarchy
.......................... 63
3.2.5.2
Lock chaining
........................... 70
3.3
Condition variables
................................... 70
3.3.1
Creating and destroying a condition variable
......... 74
3.3.2
Waiting on a condition variable
.................... 77
3.3.3
Waking condition variable waiters
.................. 81
3.3.4
One final alarm program
........................ 82
3.4
Memory visibility between threads
....................... 88
4
A few ways to use threads
......................97
4.
і
Pipeline
............................................ 98
4.2
Work Crew
..........................................106
4.3
Client/Server
........................................120
5
Advanced threaded programming
................131
5.1
One-time initialization
.................................131
5.2
Attributes objects
....................................134
5.2.1
Mutex attributes
............................... 135
5.2.2
Condition variable attributes
..................... 137
5.2.3
Thread attributes
.............................. 138
5.3
Cancellation
........................................142
5.3.1
Deferred cancelability
........................... 147
5.3.2
Asynchronous cancelability
...................... 150
Contents ix
5.3.3
Cleaning up
...................................154
5.4
Thread-specific data
..................................161
5.4.1
Creating thread-specific data
......................163
5.4.2
Using thread-specific data
........................166
5.4.3
Using destructor functions
.......................167
5.5
Realtime scheduling
...................................172
5.5.1
POSIX realtime options
..........................173
5.5.2
Scheduling policies and priorities
..................174
5.5.3
Contention scope and allocation domain
.............181
5.5.4
Problems with realtime scheduling
.................183
5.5.5
Priority-aware mutexes
..........................185
5.5.5.1
Priority ceiling mutexes
....................186
5.5.5.2
Priority inheritance mutexes
................188
5.6
Threads and kernel entities
.............................189
5.6.1
Many-to-one (user level)
..........................190
5.6.2
One-to-one (kernel level)
.........................191
5.6.3
Many-to-few (two level)
..........................193
6
POSIX adjusts to threads
.......................197
6.1
fork
...............................................197
6.1.1
Fork handlers
.................................199
6.2
exec
...............................................204
6.3
Process exit
......................................204
6.4
Stdio
...............................................204
6.4.1
flockfile and funlockfile
..........................205
6.4.2
getchar_unlocked and putchar_unlocked
.............207
6.5
Thread-safefiinctions
.................................209
6.5.1
User and terminal identification
...................210
6.5.2
Directory searching
.............................212
6.5.3
String token
..................................212
6.5.4
Time representation
............................212
6.5.5
Random number generation
......................213
6.5.6
Group and user database
........................213
6.6
Signals
..........................................214
6.6.1
Signal actions
.................................215
6.6.2
Signal masks
..................................216
6.6.3
pthreadjtill
...................................217
6.6.4
sigwait and sigwaitinfo
..........................227
6.6.5 SIGEV_THREAD...............................230
6.6.6
Semaphores: synchronizing with a
signal-catching function
.........................234
7
Real code
.................................241
Contents
7.1
Extended synchronization
...........................241
7.1.1
Barriers
.....................................242
7.1.2
Read-write locks
...............................253
7.2
Work queue manager
...............................270
7.3
But what about existing libraries?
.....................283
7.3.1
Modifying libraries to be thread-safe
................284
7.3.2
Living with legacy libraries
.......................285
8
Hints to avoid debugging
.......................289
8.1
Avoiding incorrect code
.............................290
8.1.1
Avoid relying on thread inertia
...................291
8.1.2
Never bet your mortgage on a thread race
............293
8.1.3
Cooperate to avoid deadlocks
.....................297
8.1.4
Beware of priority inversion
......................299
8.1.5
Never share condition variables between
predicates
...................................300
8.1.6
Sharing stacks and related memory
corrupters
...................................301
8.2
Avoiding performance problems
.......................302
8.2.1
Beware of concurrent serialization
................. 302
8.2.2
Use the right number of mutexes
.................. 303
8.2.2.1
Too many mutexes will not help
............. 304
8.2.3
Never fight over cache lines
....................... 304
9
POSIX threads mini-reference
...................307
9.1
POSIX
ІООЗЛс-1995
options
.........................307
9.2
POSIX
1003.
lc-1995 limits
.............................308
9.3
POSIX
1003.1^1995
interfaces
.........................309
9.3.1
Error detection and reporting
..................... 310
9.3.2
Use of void* type
............................... 311
9.3.3
Threads
..................................... 311
9.3.4
Mutexes
..................................... 316
9.3.5
Condition variables
............................. 319
9.3.6
Cancellation
.................................. 323
9.3.7
Thread-specific data
............................ 325
9.3.8
Realtime scheduling
............................ 326
9.3.9
Fork handlers
................................. 336
9.3.10
Stdio
....................................... 336
9.3.11
Thread-safe functions
.......................... 338
9.3.12
Signals
..................................... 342
9.3.13
Semaphores
................................. 345
10
Future standardization
........................347
10.1
X/OpenXSHõ
IUNIX98Ì
.............................347
Contents
10.1.1 POSIX
options for XSH5
........................348
10.1.2 Mutex
type
..................................349
10.1.3
Set concurrency level
...........................351
10.1.4
Stack guard size
..............................353
10.1.5
Parallel I/O
..................................354
10.1.6
Cancellation points
............................355
10.2
POSIX
1003.1}....................................356
10.2.1
Barriers
.....................................358
10.2.2
Read-write locks
..............................358
10.2.3
Spinlocks
...................................359
10.2.4
Condition variable wait clock
.....................359
10.2.5
Thread abort
.................................361
10.3
POSIX
1003.14......................................361
Bibliography
.............................................363
Thread resources on the Internet
.............................367
Index
...................................................369
|
adam_txt |
Contents
List of Example Programs
. xii
Preface
. xv
Intended audience
. xvi
About the author
. xvi
Acknowledgments
.xvii
1
Introduction
. 1
J.I The "bailingprogrammers"
. 3
1.2
Definitions and terminology
. 4
1.2.1
Asynchronous
. 4
1.2.2
Concurrency
. 4
1.2.3
Uniprocessor and multiprocessor
. 5
1.2.4
Parallelism
. 5
1.2.5
Thread safety and reentrancy
. 6
1.2.6
Concurrency control functions
. 7
1.3
Asynchronous programming is intuitive
. 8
1.3.1 .
because UNIX is asynchronous
. 9
1.3.2 . . .
because the world is asynchronous
. 11
1.4
About the examples in this book
. 12
1.5
Asynchronous programming, by example
. 13
1.5.1
The baseline, synchronous version
. 14
1.5.2
Aversion using multiple processes
. 15
1.5.3
A version using multiple threads
. 17
1.5.4
Summary
. 19
1.6
Benefits of threading
. 20
1.6.1
Parallelism
. 20
1.6.2
Concurrency
. 22
1.6.3
Programming model
. 24
1.7
Costs of threading
.25
1.7.1
Computing overhead
. 26
1.7.2
Programming discipline
. 26
1.7.3
Harder to debug
. 27
1.8
To thread or not to thread?
.28
1.9
POSĽX
thread concepts
.29
1.9.1
Architectural overview
. 30
1.9.2
Types and interfaces
. 30
vii
viii Contents
1.9.3
Checking for errors
. 31
2
Threads
.35
2.1
Creating and using threads
. 35
2.2
The life of a thread
. 39
2.2.1
Creation
. 40
2.2.2
Startup
. 41
2.2.3
Running and blocking
. 42
2.2.4
Termination
. 43
2.2.5
Recycling
. 44
3
Synchronization
.45
3.1
Invariants, critical sections, and predicates
. 45
3.2
Mutexes
. 47
3.2.1
Creating and destroying a mutex
. 49
3.2.2
Locking and unlocking a mutex
. 52
3.2.2.1
Nonblocking mutex locks
. 58
3.2.3
Using mutexes for atomicity
. 61
3.2.4
Sizing a mutex to fit the job
. 62
3.2.5
Using more than one mutex
. 63
3.2.5.1
Lock hierarchy
. 63
3.2.5.2
Lock chaining
. 70
3.3
Condition variables
. 70
3.3.1
Creating and destroying a condition variable
. 74
3.3.2
Waiting on a condition variable
. 77
3.3.3
Waking condition variable waiters
. 81
3.3.4
One final alarm program
. 82
3.4
Memory visibility between threads
. 88
4
A few ways to use threads
.97
4.
і
Pipeline
. 98
4.2
Work Crew
.106
4.3
Client/Server
.120
5
Advanced threaded programming
.131
5.1
One-time initialization
.131
5.2
Attributes objects
.134
5.2.1
Mutex attributes
. 135
5.2.2
Condition variable attributes
. 137
5.2.3
Thread attributes
. 138
5.3
Cancellation
.142
5.3.1
Deferred cancelability
. 147
5.3.2
Asynchronous cancelability
. 150
Contents ix
5.3.3
Cleaning up
.154
5.4
Thread-specific data
.161
5.4.1
Creating thread-specific data
.163
5.4.2
Using thread-specific data
.166
5.4.3
Using destructor functions
.167
5.5
Realtime scheduling
.172
5.5.1
POSIX realtime options
.173
5.5.2
Scheduling policies and priorities
.174
5.5.3
Contention scope and allocation domain
.181
5.5.4
Problems with realtime scheduling
.183
5.5.5
Priority-aware mutexes
.185
5.5.5.1
Priority ceiling mutexes
.186
5.5.5.2
Priority inheritance mutexes
.188
5.6
Threads and kernel entities
.189
5.6.1
Many-to-one (user level)
.190
5.6.2
One-to-one (kernel level)
.191
5.6.3
Many-to-few (two level)
.193
6
POSIX adjusts to threads
.197
6.1
fork
.197
6.1.1
Fork handlers
.199
6.2
exec
.204
6.3
Process exit
.204
6.4
Stdio
.204
6.4.1
flockfile and funlockfile
.205
6.4.2
getchar_unlocked and putchar_unlocked
.207
6.5
Thread-safefiinctions
.209
6.5.1
User and terminal identification
.210
6.5.2
Directory searching
.212
6.5.3
String token
.212
6.5.4
Time representation
.212
6.5.5
Random number generation
.213
6.5.6
Group and user database
.213
6.6
Signals
.214
6.6.1
Signal actions
.215
6.6.2
Signal masks
.216
6.6.3
pthreadjtill
.217
6.6.4
sigwait and sigwaitinfo
.227
6.6.5 SIGEV_THREAD.230
6.6.6
Semaphores: synchronizing with a
signal-catching function
.234
7
"Real code"
.241
Contents
7.1
Extended synchronization
.241
7.1.1
Barriers
.242
7.1.2
Read-write locks
.253
7.2
Work queue manager
.270
7.3
But what about existing libraries?
.283
7.3.1
Modifying libraries to be thread-safe
.284
7.3.2
Living with legacy libraries
.285
8
Hints to avoid debugging
.289
8.1
Avoiding incorrect code
.290
8.1.1
Avoid relying on "thread inertia"
.291
8.1.2
Never bet your mortgage on a thread race
.293
8.1.3
Cooperate to avoid deadlocks
.297
8.1.4
Beware of priority inversion
.299
8.1.5
Never share condition variables between
predicates
.300
8.1.6
Sharing stacks and related memory
corrupters
.301
8.2
Avoiding performance problems
.302
8.2.1
Beware of concurrent serialization
. 302
8.2.2
Use the right number of mutexes
. 303
8.2.2.1
Too many mutexes will not help
. 304
8.2.3
Never fight over cache lines
. 304
9
POSIX threads mini-reference
.307
9.1
POSIX
ІООЗЛс-1995
options
.307
9.2
POSIX
1003.
lc-1995 limits
.308
9.3
POSIX
1003.1^1995
interfaces
.309
9.3.1
Error detection and reporting
. 310
9.3.2
Use of void* type
. 311
9.3.3
Threads
. 311
9.3.4
Mutexes
. 316
9.3.5
Condition variables
. 319
9.3.6
Cancellation
. 323
9.3.7
Thread-specific data
. 325
9.3.8
Realtime scheduling
. 326
9.3.9
Fork handlers
. 336
9.3.10
Stdio
. 336
9.3.11
Thread-safe functions
. 338
9.3.12
Signals
. 342
9.3.13
Semaphores
. 345
10
Future standardization
.347
10.1
X/OpenXSHõ
IUNIX98Ì
.347
Contents
10.1.1 POSIX
options for XSH5
.348
10.1.2 Mutex
type
.349
10.1.3
Set concurrency level
.351
10.1.4
Stack guard size
.353
10.1.5
Parallel I/O
.354
10.1.6
Cancellation points
.355
10.2
POSIX
1003.1}.356
10.2.1
Barriers
.358
10.2.2
Read-write locks
.358
10.2.3
Spinlocks
.359
10.2.4
Condition variable wait clock
.359
10.2.5
Thread abort
.361
10.3
POSIX
1003.14.361
Bibliography
.363
Thread resources on the Internet
.367
Index
.369 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Butenhof, David R. 1956- |
author_GND | (DE-588)173094554 |
author_facet | Butenhof, David R. 1956- |
author_role | aut |
author_sort | Butenhof, David R. 1956- |
author_variant | d r b dr drb |
building | Verbundindex |
bvnumber | BV023416498 |
classification_rvk | ST 230 |
ctrlnum | (OCoLC)315679029 (DE-599)BVBBV023416498 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 20. print. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01493nam a2200385 c 4500</leader><controlfield tag="001">BV023416498</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20110516 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">080725s2007 a||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0201633922</subfield><subfield code="9">0-201-63392-2</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)315679029</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV023416498</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-573</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-860</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Butenhof, David R.</subfield><subfield code="d">1956-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)173094554</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Programming with POSIX threads</subfield><subfield code="c">David R. Butenhof</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">20. print.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston, Mass. ; Munich [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2007</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVIII, 381 S.</subfield><subfield code="b">Ill.</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">Addison-Wesley professional computing series</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">POSIX</subfield><subfield code="0">(DE-588)4369024-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</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="689" ind1="0" ind2="0"><subfield code="a">POSIX</subfield><subfield code="0">(DE-588)4369024-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Thread</subfield><subfield code="0">(DE-588)4377482-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</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=016599015&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-016599015</subfield></datafield></record></collection> |
id | DE-604.BV023416498 |
illustrated | Illustrated |
index_date | 2024-07-02T21:29:31Z |
indexdate | 2024-07-09T21:18:09Z |
institution | BVB |
isbn | 0201633922 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016599015 |
oclc_num | 315679029 |
open_access_boolean | |
owner | DE-573 DE-473 DE-BY-UBG DE-860 |
owner_facet | DE-573 DE-473 DE-BY-UBG DE-860 |
physical | XVIII, 381 S. Ill. |
publishDate | 2007 |
publishDateSearch | 2007 |
publishDateSort | 2007 |
publisher | Addison-Wesley |
record_format | marc |
series2 | Addison-Wesley professional computing series |
spelling | Butenhof, David R. 1956- Verfasser (DE-588)173094554 aut Programming with POSIX threads David R. Butenhof 20. print. Boston, Mass. ; Munich [u.a.] Addison-Wesley 2007 XVIII, 381 S. Ill. txt rdacontent n rdamedia nc rdacarrier Addison-Wesley professional computing series POSIX (DE-588)4369024-5 gnd rswk-swf Programmierung (DE-588)4076370-5 gnd rswk-swf Thread (DE-588)4377482-9 gnd rswk-swf POSIX (DE-588)4369024-5 s Thread (DE-588)4377482-9 s Programmierung (DE-588)4076370-5 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=016599015&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Butenhof, David R. 1956- Programming with POSIX threads POSIX (DE-588)4369024-5 gnd Programmierung (DE-588)4076370-5 gnd Thread (DE-588)4377482-9 gnd |
subject_GND | (DE-588)4369024-5 (DE-588)4076370-5 (DE-588)4377482-9 |
title | Programming with POSIX threads |
title_auth | Programming with POSIX threads |
title_exact_search | Programming with POSIX threads |
title_exact_search_txtP | Programming with POSIX threads |
title_full | Programming with POSIX threads David R. Butenhof |
title_fullStr | Programming with POSIX threads David R. Butenhof |
title_full_unstemmed | Programming with POSIX threads David R. Butenhof |
title_short | Programming with POSIX threads |
title_sort | programming with posix threads |
topic | POSIX (DE-588)4369024-5 gnd Programmierung (DE-588)4076370-5 gnd Thread (DE-588)4377482-9 gnd |
topic_facet | POSIX Programmierung Thread |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016599015&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT butenhofdavidr programmingwithposixthreads |