Article View: pl.comp.lang.c
Article #267920Re: Ciemna strona C++
From: Sebastian Kaliszewski
Date: Fri, 30 Nov 2007 14:31
Date: Fri, 30 Nov 2007 14:31
50 lines
4155 bytes
4155 bytes
Marcin ‘Qrczak’ Kowalczyk wrote: [...] > 3. Jeden wątek języka jest realizowany przez jeden wątek systemu > operacyjnego, ale w danej chwili chodzi tylko jeden taki wątek naraz > (z wyjątkiem wołania funkcji w C, które wykonują się długo bez > potrzeby dostępu do rantajmu języka). Program używa systemowego > stosu tak jak w C. Program musi specjalnie oznaczać blokujące > funkcje systemowe. > > Przykłady: OCaml, Python. > > W pierwszej metodzie dużym problemem jest odśmiecanie. Poza tym wątków > nie może być zbyt dużo, a przełączanie między wątkami jest dość drogie. > > W drugiej metodzie problemem jest niewykorzystanie potencjału > wielordzeniowych komputerów (chyba że przez rozbicie programu na osobne > procesy, co z powodzeniem stosuje Erlang). Kłopotliwe jest używanie > gotowych bibliotek, które zawierają funkcje wykonujące się długo bądź > które powodują przeplatanie się wywołań funkcji z różnych języków > (program może przykryć ramkę stosu funkcji w C ramką stosu funkcji > w C wykonywanej na rzecz innego wątku logicznego, a następnie spróbować > wrócić do tej pierwszej, kiedy druga jeszcze się nie skończyła). > > Trzecia metoda łączy większość wad pierwszych dwóch. Wątków nie może być > zbyt dużo, a przełączanie między nimi jest jeszcze droższe niż w pierwszej > metodzie. Nie jest wykorzystywany potencjał wieloprocesorowych komputerów, > a funkcje wykonujące się długo muszą być specjalnie oznaczone. Nie lubię > tej metody. Główna zaleta: jest łatwa w realizacji. Nie ma probemu parszywego odśmiedcania. Odśmiecanie nie jest problematyczne i często może być wydajniejsze. > Są i hybrydowe metody, mniej typowe: > > 4. Wątki języka są realizowane przez jeden wątek systemowy, chyba że > wołane są blokujące funkcje w C bądź funkcje w C, które wołają > z powrotem funkcje naszego języka - wtedy wątek systemowy staje się > związany z jednym wątkiem logicznym, a do wykonywania innych wątków > logicznych tworzone są pomocnicze wątki systemowe. W danej chwili > tylko jeden wątek systemowy ma dostęp do rantajmu języka. > > Przykłady: Glasgow Haskell (między starym a nowym bądź nowy jako > jedna z opcji), Kogut. [...] Jaka jest różnica pomiędzy 3 a 4? Z Twojego opisu widzę że i tu i tu nie ma równoległości. Czy tylko to, że wątki z zasady nie są systemowe? pzdr \SK
Technical Details
Message-ID:
<fip5st$vui$1@bozon2.softax.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!bozon.softax.com.pl!not-for-mailReferences:
<fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi2nbp$bit$1@nemesis.news.tpi.pl> <fi3e50$h2u$1@news.vectranet.pl> <fimcsr$8sk$1@bozon2.softax.pl> <1196380169.15384.58.camel@qrnik>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!bozon.softax.com.pl!not-for-mail From: Sebastian Kaliszewski <s@get.it.off.to.reply.informa.pl> Newsgroups: pl.comp.lang.c Subject: Re: Ciemna strona C++ Date: Fri, 30 Nov 2007 15:31:04 +0100 Organization: Softax news server Lines: 50 Message-ID: <fip5st$vui$1@bozon2.softax.pl> References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi2nbp$bit$1@nemesis.news.tpi.pl> <fi3e50$h2u$1@news.vectranet.pl> <fimcsr$8sk$1@bozon2.softax.pl> <1196380169.15384.58.camel@qrnik> NNTP-Posting-Host: 83.18.189.42 Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1196432988 2262 83.18.189.42 (30 Nov 2007 14:29:48 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Fri, 30 Nov 2007 14:29:48 +0000 (UTC) User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050322) X-Accept-Language: en-us, en In-Reply-To: <1196380169.15384.58.camel@qrnik> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit