Szálkészlet programtervezési minta

A zöld dobozokkal jelzett példa szálkészlet kék várakozó és sárga teljesített feladatokkal

A számítógép programozásban a szálkészlet (angolul Thread Pool) egy programtervezési minta, amely során a szálak azért jönnek létre, hogy párhuzamosan végrehajtsák a meghatározott számú sorba rendezett feladatokat. A készlet létrehozásának oka az, hogy megspóroljuk a szálak gyakori létrehozásának és bezárásának költségeit, amely főleg akkor jelenthet gondot, ha az egyes feladatok rövid ideig futnak. Az objektumkészlet speciális esete.[1] Számukat a rendszer erőforrásai határozzák meg.[2]

Általában több feladat van, mint ahány szál. Folyamatosan érkezhetnek újabb feladatok, amelyek egy sorba kerülnek. A feladatok sora szinkronizált, és lehet elsőbbségi sor is. Amint egy szál elvégzi a feladatát, az kérvényez egy másik feladatot a sorból, amíg minden feladat el nem fogy. A szál ezt követően megszakad, vagy alvó állapotba lép, amíg nem keletkezik új elvégezhető feladat.

Darabszám és sebesség

A szálak darabszáma általában paraméterként változtatható a legjobb teljesítmény biztosítása érdekében. A darabszám dinamikusan is változhat, a várakozó feladatok száma szerint.[3] Mivel csak kezdetben és szükség esetén kell új szálat létrehozni, bezárni pedig csak a végén kell, ezzel a többszálú program felgyorsul és stabilabbá válik.

Például egy web szerver még több szálat hozhat létre ha a weboldal azt kéri, vagy akár el is távolíthat közülük. Minél nagyobb a szálkészletünk (Thread Pool-unk) annál erőforrás igényesebb lesz. A túl sok fölösleges szál memóriapazarlás, és a szálak váltogatása további költséget jelent. A szálakhoz erőforrások is rendelhetők, például észszerű, ha a szerver a socket kapcsolatokat hozzárendeli egy-egy szálhoz, és azt a szál több feladathoz is használja.

A használt algoritmus meghatározza, hogy mikor kell létrehozni, illetve megsemmisíteni a szálakat, és ez hatással van az általános teljesítményre.

  • Túl sok szál létrehozása idő és erőforrás pocséklást jelent.
  • Túl sok szál megsemmisítése (bezárása, befejezése) még több időpocséklást jelent a későbbi újra létrehozásuk miatt.
  • A szálakat túl lassan létrehozva gyenge teljesítményű klienset fog eredményezni a hosszú várakozási idők miatt.
  • A szálakat túl lassan megsemmisítve, a többi szálat „éheztetjük”.

Az algoritmus a fennálló helyzet valamelyike alapján kiválasztja az optimális mintát. Ha a feladatok száma túl nagy, akkor új szállak létrehozása feladatonként nem túl optimális. Egyéb előnye a használatának azon felül, hogy kreálhatunk új szálakat feladatonként az, hogy a szál létrehozás és megsemmisítés kiegyenlítődik, ami jobb teljesítményt és jobb rendszer stabilitást eredményez. Létrehozni, vagy megszüntetni új szálakat és az ahhoz kapcsolódó erőforrásokat költséges folyamat az idő tekintetében. Túl sok szálal csak pazaroljuk a memóriát, és a szálak közötti váltások szintén károsak a teljesítményre. Például, egy csatlakozón keresztüli kapcsolat egy másik géphez - ami akár több ezer, vagy több millió „drop” és „re-establish” ciklusból is állhat - elkerülhető.

Szálbiztosság

Amikor ezt a mintát megvalósítjuk, a programozónak biztosítania kell a szálbiztosságot a sorban. Java-ban lehetőség van a metódusok szinkronizálására a synchronized kulcsszóval. Ez hozzáköti a módosított blokkot egy atomi szerkezethez, ennélfogva kényszerítve minden erőforrást használó szálat arra, hogy várjanak addig, amíg nincsen már szál, ami erőforrást használni. Ennek hátránya, hogy ez a metódus drága. Létre tudsz hozni egy olyan objektumot, amely egy listát tart minden munkafeladatról a sorban, ami lehet egyke is.

A szálak általában egyazon számítógépen hajtódnak végre. Azonban a szálkészlet fogalma kapcsolódik a szerver farm fogalmához, ahol van egy kiszolgáló (master), ami lehet egy szálkészlet is. És ez a kiszolgáló osztja szét a különböző beérkező feladatokat a különböző számítógépeken (munkás, worker) futó szálak között, ezáltal is növelve az általános teljesítményt.

Források

Garg, Rajat P. & Sharapov, Ilya Techniques for Optimizing Applications - High Performance Computing Prentice-Hall 2002, p. 394

További információk

Jegyzetek

  1. Holub, Allen. Taming Java Threads. Apress, 209. o. (2000) 
  2. TCP/IP Sockets in C#: Practical Guide for Programmers. Academic Press, 112. o. (2004) 
  3. Yibei Ling (2000. április 1.). „Analysis of optimal thread pool size”. ACM SIGOPS Operating Systems Review 34 (2), 42–55. o. 

Fordítás

Ez a szócikk részben vagy egészben a Thread pool című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Read other articles:

KakaoTalk TipePengirim pesan instan Versi pertama18 Maret 2010 GenreMobile Messaging AppLisensiperangkat lunak gratis BahasaDaftar bahasa Bahasa, English, Spanish, Korean, Japanese, Chinese (Traditional & Simplified), Thai, Turkish, Italiano, Francis, Deutsch, Portugese Karakteristik teknisSistem operasiiOS 13.0 dan terbaruAndroid 7.0 dan terbaruWindows 10 dan terbarumacOS 10.14 dan terbaruUkuran40.40 MB (Android)Informasi pengembangPengembangKAKAO Inc.Informasi tambahanSitus webhttp://ww...

 

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Maret 2023. Museum Seni KhersonХерсонський обласний художній музей імені Олексія Шовкуненка </img> </img> Didirikan 27 Mei 1978 Lokasi Kherson, Ukraina Jenis Musium Seni Situs web https://artmuseum.ks...

 

 

Pandangan mendetail dari sebuah karya seni Sancai Sancai (Hanzi: 三彩; Pinyin: sāncǎi; harfiah: 'tiga warna') adalah sebuah jenis dekorasi pada keramik Tiongkok yang menggunakan tiga warna yang berbeda untuk dekorasi, yang sejarahnya diciptakan pada masa Dinasti Tang.[1] Dekorasi tersebut lebih umum disebut sebagai Tang Sancai (Hanzi: 唐三彩) dalam bahasa Tionghoa. Pengaruh Tembikar Italia sangat dipengaruhi oleh keramik Tionghoa. Sebuah plat Sancai (Tiga warna)...

Teori hubungan internasional Realisme Realisme neoklasik Neorealisme (realisme struktural) Realisme klasik Realisme ofensif Realisme defensif Realisme liberal (Mazhab Inggris) Keunggulan relatif Keunggulan absolut Realisme strategis Liberalisme Idealisme Teori perdamaian demokratis Liberalisme republik Institusionalisme Neoliberalisme Liberalisme interdependensi Liberalisme sosiologis Liberalisme institusional Konstruktivisme Konstruktivisme modern Konstruktivisme pascamodern Konstruktivisme ...

 

 

Shohei OhtaniOhtani, 2022Los Angeles Dodgers – No. 17Pitcher / Designated hitter / OutfielderLahir: 5 Juli 1994 (umur 29)Ōshū, Iwate, Jepang Bats: Kiri Throws: Kanan Professional debutNPB: 29 Maret, 2013, untuk Hokkaidō Nippon-Ham FightersMLB: 29 Maret, 2018, untuk Los Angeles AngelsNPB statistik (through 2017)Win–loss record42–15Earned run average2.52Strikeout624Batting average.286Home run48Runs batted in166MLB statistik (through 22 April, 2023)Win...

 

 

Artikel ini bukan mengenai Hiu koboi. Hiu karang sirip putih Status konservasi Hampir Terancam (IUCN 3.1) Klasifikasi ilmiah Kerajaan: Animalia Filum: Chordata Kelas: Chondrichthyes Subkelas: Elasmobranchii Superordo: Selachimorpha Ordo: Carcharhiniformes Famili: Carcharhinidae Genus: TriaenodonJ. P. Müller & Henle, 1837 Spesies: T. obesus Nama binomial Triaenodon obesus(Rüppell, 1837) Persebaran hiu karang Sinonim Carcharias obesus Rüppell, 1837 Triaenodon apicalis Whitley, ...

Railway station in Worcestershire, England For the Severn Valley Railway station, see Kidderminster Town railway station. KidderminsterStation frontageGeneral informationLocationKidderminster, Wyre ForestEnglandGrid referenceSO838763Owned byNetwork RailManaged byWest Midlands TrainsPlatforms2Other informationStation codeKIDClassificationDfT category DHistoryOpened1852Passengers2018/19 1.638 million2019/20 1.530 million2020/21 0.371 million2021/22 0.799 million2022/23 0.916 million LocationNot...

 

 

  Singolare maschileTokyo 2020 Informazioni generaliLuogoAriake Coliseum Periodo24 luglio-1 agosto 2021 Partecipanti64 Podio Alexander Zverev  Germania Karen Chačanov  ROC Pablo Carreño Busta  Spagna Edizione precedente e successiva Rio de Janeiro 2016 Parigi 2024 Voce principale: Tennis ai Giochi della XXXII Olimpiade. Tennis a Tokyo 2020 Singolare   uomini     donne Doppio   uomini   misto   donne Il torneo di singolare maschile ai Giochi ...

 

 

River Island in Assam, Northeast India This article may require copy editing for grammar, style, cohesion, tone, or spelling. You can assist by editing it. (November 2023) (Learn how and when to remove this message) MajuliFrom top, left to right: Doriya River of Majuli; Kherkoitia River; an anabranch of the BrahmaputraMajuliGeographyLocationBrahmaputra RiverCoordinates27°00′N 94°13′E / 27.000°N 94.217°E / 27.000; 94.217Area352 km2 (136 sq mi)High...

Serbian sculptor Đorđe JovanovićЂорђе ЈовановићPhoto of JovanovićBorn(1861-01-21)21 January 1861Novi Sad, Austrian EmpireDied23 March 1953(1953-03-23) (aged 92)Belgrade, YugoslaviaNationalitySerbianEducationAcademy of Fine Arts, MunichKnown forSculpture Đorđe Jovanović (21 January 1861, Novi Sad – 26 March 1953, Belgrade) was a Serbian sculptor and a full member of the Serbian Academy of Sciences and Arts. Biography Jovanović was born in Novi Sad, where he sp...

 

 

Fill the VoidPoster rilis teatrikalSutradaraRama BurshteinProduserAssaf AmirDitulis olehRama BurshteinPemeranHadas YaronChaim SharirIdo SamuelIrit ShelegYiftach KleinHila FeldmanPenata musikYitzhak AzulaySinematograferAsaf SudryPenyuntingSharon ElovicPerusahaanproduksiReshet BroadcastingAvi Chai fundSundanceDistributorSony Pictures Classics (AS)Tanggal rilis 01 September 2012 (2012-09-01) (Venesia) 18 Oktober 2012 (2012-10-18) (Israel) Durasi90 menit[1]NegaraIs...

 

 

Questa voce o sezione sugli argomenti pallanuotisti e imprenditori non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento. Gérard BlitzNazionalità Belgio Pallanuoto 1 I due numeri indicano le presenze e le reti segnate, per le sole partite di campionato.Il simbolo → indica un trasferimento in prestito. &...

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (ديسمبر 2018) مشهد آل طباطبامعلومات عامةنوع المبنى ضريح المنطقة الإدارية محافظة القاهرة البلد  مصر معلومات أخرىالإ...

 

 

Railway station in Stirling, Scotland, UK BalquhidderBalquhidder railway station in 1961General informationLocationLochearnhead, Stirling (district)ScotlandCoordinates56°21′33″N 4°18′35″W / 56.35919°N 4.30978°W / 56.35919; -4.30978Platforms3Other informationStatusDisusedHistoryOriginal companyCallander and Oban RailwayPre-groupingCallander and Oban Railway operated by Caledonian RailwayKey dates1 June 1870Opened as Lochearnhead[1]1 July 1904Renamed ...

 

 

  لمعانٍ أخرى، طالع سوق الثلاثاء (توضيح). سوق الثلاثاء خريطة البلدية الإحداثيات 35°01′26″N 2°00′00″W / 35.023888888889°N 2°W / 35.023888888889; -2   تقسيم إداري  البلد  الجزائر  ولاية ولاية تلمسان  دائرة دائرة باب العسة عدد السكان (2008[1])  المجموع 2٬756 معلومات أخ�...

Paramedis di Amerika Serikat membawa korban kecelakaan ke rumah sakit Star of Life, simbol yang diterima secara global untuk layanan medis darurat. Paramedis (bahasa Inggris: paramedic) adalah profesi yang memberikan pelayanan medis pra-rumah sakit dan gawat darurat. Sedangkan Ilmu yang mempelajarinya disebut paramedicine. Paramedis menggunakan Ambulans untuk melaksanakan tugasnya mendatangi TKP yang membutuhkan pertolongan medis kepada kecelakaan, atau bantuan medis/kesehatan darurat lainya....

 

 

La Consegna delle chiaviAutoreGiambattista Pittoni Data1730-1735 Tecnicaolio su tela Dimensioni82×42 cm UbicazioneLouvre, Parigi Consegna delle chiavi, è un dipinto realizzato indicativamente nel 1730 dal pittore italiano Giambattista Pittoni.[1] Indice 1 Storia 2 Descrizione 3 Esposizioni 4 Argomenti correlati 5 Note 6 Bibliografia 7 Collegamenti esterni Storia L'episodio è tratto dal Vangelo (secondo San Matteo, 16: 18-20) Ci fu un primo bozzetto per una pala d'altare, della...

 

 

Puteri Indonesia 2008Tanggal15 Agustus 2008TempatJakarta Convention Center, JakartaPembawa acaraCharles Bonar SiraitChoky SitohangNadia MulyaMelanie PutriaPengisi acaraRossaADA BandChristopher AbimanyuTia AFIDian HP OrchestraStasiun televisiIndosiarPeserta38Tampil kembaliNanggroe Aceh DarussalamKalimantan TengahPemenangZivanna Letisha Siregar[1]( DKI Jakarta 6)← 20072009 →lbs Puteri Indonesia 2008 adalah kontes Puteri Indonesia yang ke-13. Mal...

Month in 1919 1919 January February March April May June July August September October November December << November 1919 >> Su Mo Tu We Th Fr Sa 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30   The following events occurred in November 1919: The first Armistice Day ceremonies are held around the world on November 11; here a crowd gathers for the ceremony in Philadelphia. November 1, 1919 (Saturday) The California State Senate unanim...

 

 

1957 studio album by Horace SilverSilver's BlueStudio album by Horace SilverReleasedAugust 1957[1]RecordedJuly 2, 17–18, 1956GenreJazzLength44:23LabelEpicProducerCal LampleyHorace Silver chronology Horace Silver and the Jazz Messengers(1955) Silver's Blue(1957) 6 Pieces of Silver(1956) Reissue cover Professional ratingsReview scoresSourceRatingAllmusic[2]The Rolling Stone Jazz Record Guide[3]DownBeat[4] Silver's Blue is a studio album by American jazz...