Liggewigproses

'n Liggewigproses (Engels: lightweight thread) in rekenaarwetenskap is 'n metode om 'n rekenaarprogram in een of meer samelopende take op te deel (sien ook: vurk). Liggewigprosesse en prosesse verskil van een bedryfstelsel tot die volgende, maar oor die algemeen word 'n liggewigproses in 'n gewone proses omvat. Liggewigprosesse wat aan 'n proses behoort deel hulpbronne waar gewone prosesse nie tipies hulpbronne deel nie.

Op 'n enkele verwerker geskied samelopendheid d.m.v. tydsverdeling multipleksering wat soortgelyk is aan die samelopende uitvoering van veelvuldige take (rekenaar samelopendheid): die sentrale verwerker wissel uitvoering opeenvolgend van een liggewigproses tot die volgende. Die kontekswisseling kan vinnig genoeg geskied om 'n illusie van samelopendheid te skep. Op 'n multiverwerker- of multikernstelsel kan samelopendheid van liggewigprosesse  d.m.v. multiverwerking geskied, sodat onderskeie liggewigprosesse en gewone prosesse gelyktydig op verskillende verwerkers of kerns kan uitvoer.

Baie moderne bedryfstelsels ondersteun beide die tydverdeelde en multiverwerker uitvoer van liggewigprosesse d.m.v. 'n prosesskeduleerder. Die bedryfstelsel kern laat programmeerders toe om liggewigprosesse te manipuleer d.m.v. die sisteemroepkoppelvlak.

In die afwesigheid van sulke ondersteuning kan programme steeds liggewigprosesse implementeer d.m.v. tydskakelaars, seine of ander wyses wat hul eie uitvoer onderbreek en dus 'n vorm van tydsverdeling toelaat. Hierdie metodes word soms "user-space threads" in Engels genoem.

 Liggewigprosesse teenoor prosesse 
'n Liggewigproses word onderskei van 'n tradisionele samelopende proses deur dat prosesse:
 tipies onafhanklik is,
 aansienlike toestandsinliging bevat,
 onderskeie adresruimtes het,
 slegs d.m.v. interproseskommunikasiemeganismes wat deur bedryfstelsel verskaf is, kommunikeer.

Veelvuldige liggewigprosesse daarenteen deel gewoonlik die toestand, geheue en ander hulpbronne van 'n proses. Kontekswisseling tussen liggewigprosesse in dieselfde proses is gewoonlik vinniger as kontekswisseling tussen prosesse.

 Verwysings 

 David R. Butenhof: Programming with POSIX Threads, Addison-Wesley, 
 Bradford Nichols, Dick Buttlar, Jacqueline Proulx Farell: Pthreads Programming, O'Reilly & Associates, 
 Charles J. Northrup: Programming with UNIX Threads, John Wiley & Sons, 
 Mark Walmsley: Multi-Threaded Programming in C++, Springer, 
 Paul Hyde: Java Thread Programming, Sams, 
 Bill Lewis: Threads Primer: A Guide to Multithreaded Programming, Prentice Hall, 
 Steve Kleiman, Devang Shah, Bart Smaalders: Programming With Threads, SunSoft Press, 
 Pat Villani: Advanced WIN32 Programming: Files, Threads, and Process Synchronization, Harpercollins Publishers, 
 Jim Beveridge, Robert Wiener: Multithreading Applications in Win32, Addison-Wesley, 
 Thuan Q. Pham, Pankaj K. Garg: Multithreaded Programming with Windows NT,  Prentice Hall, 
 Len Dorfman, Marc J. Neuberger: Effective Multithreading in OS/2, McGraw-Hill Osborne Media, 
 Alan Burns, Andy Wellings: Concurrency in ADA, Cambridge University Press, 
 Uresh Vahalia: Unix Internals: the New Frontiers, Prentice Hall, 
 Alan L. Dennis:  .Net Multithreading , Manning Publications Company, 
 Tobin Titus, Fabio Claudio Ferracchiati, Srinivasa Sivakumar, Tejaswi Redkar, Sandra Gopikrishna: C# Threading Handbook, Peer Information Inc, 
 Tobin Titus, Fabio Claudio Ferracchiati, Srinivasa Sivakumar, Tejaswi Redkar, Sandra Gopikrishna: Visual Basic .Net Threading Handbook, Wrox Press Inc, 

 Eksterne skakels (almal in Engels) 
 Artikel "Query by Slice, Parallel Execute, and Join: A Thread Pool Pattern in Java " deur Binildas C. A.
 Ars Technica artikel oor samelopendheid
 Antwoorde op gereeld gevraagde vrae vir comp.programming.threads
 Die C10K probleem
 Artikel "The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software" deur Herb Sutter
 Artikel "The Problem with Threads " deur Edward Lee
 Artikel "When is Multi-Threading a bad idea? " deur Chris Reath
 POSIX threads explained deur Daniel Robbins
 Multithreading in the Solaris Operating Environment 

Kategorie:Bedryfstelseltegnologie
Kategorie:Samelopendheid