{"id":3029,"date":"2014-09-23T14:35:57","date_gmt":"2014-09-23T14:35:57","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=3029"},"modified":"2016-07-11T10:52:11","modified_gmt":"2016-07-11T10:52:11","slug":"pthread-posix-thread","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=3029","title":{"rendered":"PThread \/ POSIX Thread"},"content":{"rendered":"<ul>\n<li>synchronization<\/li>\n<li>threads<\/li>\n<li>barrier point<\/li>\n<\/ul>\n<ul>\n<li>pthread_init()<\/li>\n<li>sem_init()<\/li>\n<li>pthread_barrier_init<\/li>\n<\/ul>\n<p>&#8220;For real applications there are more polished libraries such as pthreads for kernel threads or GNU Portable Threads (Pth) for user space threads.&#8221;<\/p>\n<p>&#8220;The GNU Pth (GNU Portable Threads) scheduling itself is done in a cooperative way, i.e., the threads are managed by a priority- and event-based non-preemptive scheduler. The intention is that this way one can achieve better portability and run-time performance than with preemptive scheduling. The event facility allows threads to wait until various types of events occur, including pending I\/O on filedescriptors, asynchronous signals, elapsed timers, pending I\/O on message ports, thread and process termination, and even customized callback functions.&#8221;<\/p>\n<p><a href=\"http:\/\/docs.oracle.com\/cd\/E19455-01\/806-5257\/index.html\">Oracle Multithreaded Programming Guide<\/a><br \/>\n<a href=\"https:\/\/computing.llnl.gov\/tutorials\/pthreads\/\">POSIX Threads Programming<\/a><br \/>\n<a href=\"http:\/\/www.cs.cmu.edu\/afs\/cs\/academic\/class\/15492-f07\/www\/pthreads.html\">POSIX thread (pthread) libraries<\/a><br \/>\n<a href=\"http:\/\/www.yolinux.com\/TUTORIALS\/LinuxTutorialPosixThreads.html\">POSIX thread (pthread) libraries<\/a><br \/>\n<a href=\"http:\/\/openbook.galileocomputing.de\/linux_unix_programmierung\/Kap10-000.htm\">Linux-UNIX-Programmierung &#8211; Threads<\/a><br \/>\n<a href=\"http:\/\/pronix.linuxdelta.de\/C\/Linuxprogrammierung\/Linuxsystemprogrammieren_C_Kurs_Kapitel8.shtml\">Parallele Programmierung mit Threads<\/a><br \/>\n<a href=\"http:\/\/www.linuxjournal.com\/article\/3138\">Introduction to Multi-Threaded Programming<\/a>, 1999<br \/>\n<a href=\"http:\/\/www.ijon.de\/comp\/tutorials\/threads\/\">Eine Einf\u00fchrung in die Programmierung von Threads unter Linux<\/a><br \/>\n<a href=\"http:\/\/www.evanjones.ca\/software\/threading.html\">Implementing a Thread Library on Linux<\/a><br \/>\n<a href=\"http:\/\/www.gnu.org\/software\/pth\/\">GNU Pth &#8211; The GNU Portable Threads<\/a>, 2006<br \/>\n<a href=\"http:\/\/linas.org\/linux\/threads-faq.html\">Linux Threads Frequently Asked Questions (FAQ)<\/a>, 1996<\/p>\n<h4>Joinable and Detached Threads<\/h4>\n<p><a href=\"http:\/\/docs.oracle.com\/cd\/E19455-01\/806-5257\/attrib-69011\/index.html\">Oracle Multithreaded Programming Guide: Set Detach State<\/a><br \/>\n<a href=\"https:\/\/computing.llnl.gov\/tutorials\/pthreads\/#Joining\">Joining and Detaching Threads<\/a><br \/>\n<a href=\"http:\/\/www.domaigne.com\/blog\/computing\/joinable-and-detached-threads\/\">Joinable and Detached Threads<\/a><br \/>\n<a href=\"http:\/\/stackoverflow.com\/questions\/6202762\/pthread-create-as-detached\">Pthread create as detached<\/a><\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/Thread_%28computing%29\">Thread (computing)<\/a><br \/>\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Light-weight_process\">Light-weight process<\/a><br \/>\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Fiber_%28computer_science%29\">Fiber (computer science)<\/a><br \/>\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Green_threads\">Green threads<\/a><br \/>\n<a href=\"http:\/\/de.wikipedia.org\/wiki\/Thread_%28Informatik%29\">Thread (Informatik)<\/a><br \/>\n<a href=\"http:\/\/de.wikipedia.org\/wiki\/User-Thread\">User-Thread<\/a><br \/>\n<a href=\"http:\/\/de.wikipedia.org\/wiki\/Native_POSIX_Thread_Library\">Native POSIX Thread Library (NPTL)<\/a><\/p>\n<p><a href=\"https:\/\/www.risc.jku.at\/people\/schreine\/papers\/rt++-linuxmag1\/main.html\">Alle F\u00e4den in der Hand &#8211; Thread Programmierung unter Linux in C und C++ (Teil 1)<\/a><br \/>\n<a href=\"https:\/\/www.risc.jku.at\/people\/schreine\/papers\/rt++-linuxmag2\/main.html\">Alle F\u00e4den in der Hand &#8211; Thread Programmierung unter Linux in C und C++ (Teil 2)<\/a><\/p>\n<p><a href=\"http:\/\/forum.kerbalspaceprogram.com\/threads\/24529-The-Linux-compatibility-thread!\">The Linux compatibility thread!<\/a><\/p>\n<p><a href=\"www.linux-magazin.de\/Ausgaben\/2012\/09\/Java-Threads\">Thread-Programmierung mit Java<\/a><\/p>\n<h3><\/h3>\n<p><a href=\"http:\/\/docs.oracle.com\/cd\/E19455-01\/806-5257\/6je9h0347\/index.html\">Oracle Multithreaded Programming Guide &#8211; Avoiding Deadlock<\/a><\/p>\n<h3>Map \/ Reduce<\/h3>\n<p><a href=\"http:\/\/modelingwithdata.org\/arch\/00000175.htm\">The one line of C code that will make your program ten times faster<\/a><\/p>\n<h3>Barriere<\/h3>\n<h3>Semaphore<\/h3>\n<p><a href=\"http:\/\/greenteapress.com\/wp\/semaphores\/\">The Little Book of Semaphores<\/a><\/p>\n<h3>Monitor<\/h3>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Monitor_%28synchronization%29\">Wikipedia: Monitor<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>synchronization threads barrier point pthread_init() sem_init() pthread_barrier_init &#8220;For real applications there are more polished libraries such as pthreads for kernel threads or GNU Portable Threads (Pth) for user space threads.&#8221; &#8220;The GNU Pth (GNU Portable Threads) scheduling itself is done in a cooperative way, i.e., the threads are managed by a priority- and event-based non-preemptive [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3029","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/3029","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3029"}],"version-history":[{"count":15,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/3029\/revisions"}],"predecessor-version":[{"id":4992,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/3029\/revisions\/4992"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}