Article View: pl.comp.lang.java
Article #149859Re: czy wątki mogą świadczyć usługi?
From: Maciej Sobczak
Date: Fri, 26 Mar 2010 21:47
Date: Fri, 26 Mar 2010 21:47
43 lines
3254 bytes
3254 bytes
On 26 Mar, 17:34, keef <a...@a.com> wrote: > >>> Runnable nie powstał tylko po to, stosuje się go w wielu wielu wielu > >>> miejscach > >> Po co takie sztuczki ? > > znakomity przykład użycia masz właśnie w klasie Thread. > Bomba! Czy jeszcze jakiś inny pomysł na użycie poza Thread? Np. javax.swing.SwingUtilities.invokeLater(...) Nie czepiaj się Runnable. To wyłącznie efekt konstrukcji języka, który nie oferuje innych mechanizmów. Runnable sam w sobie nie ma nic wspólnego z wątkami, więc jego użycie w definicji klasy nie sugeruje wielowątkowości. To jest jedynie znacznik: "uwaga, instancje tej klasy można wywołać", gdzie "wywołanie" to właśnie run(). Kontekstów na użycie czegoś takiego jest wiele. Inne języki radzą sobie z tym problemem inaczej. Np. w C++ masz przeciążalny operator wywołania funkcji - bardzo zgrabna konstrukcja, bo składniowo unifikuje się z normalnymi funkcjami. I podobnie - można to użyć do wątków, ale nie trzeba. W Pythonie jest podobnie, ale w kontekście dynamicznym. W Adzie można by było użyć generyków z dowolnym przemapowaniem operacji w momencie jego konkretyzowania - czyli nie dość, że nie trzeba używać interfejsu, to nawet nazwa operacji nie musi być ustalona. Itd. Ogólnie - istnienie Runnable wynika z konstrukcji Javy, więc on sam niczemu nie jest winien. Po prostu język taki jak Java musi mieć interfejs taki jak Runnable. > Czy > widzisz jeszcze inne zastosowanie interfejsu Runnable, którego nie > sposób rozwiązać przy użyciu polimorfizmu? Interfejs Runnable (jak i każdy inny) opiera się na użyciu polimorfizmu, więc pytanie jest dziwne. -- Maciej Sobczak * http://www.inspirel.com
Technical Details
Message-ID:
<a0c376f6-f4ed-42ac-a8f8-fa6f2081e22c@j21g2000yqh.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!j21g2000yqh.googlegroups.com!not-for-mailReferences:
<4c3b4f20-3f62-4e54-9e3c-298e4ea6c3e5@g10g2000yqh.googlegroups.com> <ho5jpd$gir$1@news.onet.pl> <hog3hh$s2g$1@news.task.gda.pl> <343ca24e-feae-4bf0-ba6c-ea59a4884c35@x12g2000yqx.googlegroups.com> <hoigb3$lrn$1@news.task.gda.pl> <hoiitj$c8i$1@news.onet.pl> <hoinn7$61u$1@news.task.gda.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!j21g2000yqh.googlegroups.com!not-for-mail From: Maciej Sobczak <see.my.homepage@gmail.com> Newsgroups: pl.comp.lang.java Subject: Re: czy wątki mogą świadczyć usługi? Date: Fri, 26 Mar 2010 14:47:17 -0700 (PDT) Organization: http://groups.google.com Lines: 48 Message-ID: <a0c376f6-f4ed-42ac-a8f8-fa6f2081e22c@j21g2000yqh.googlegroups.com> References: <4c3b4f20-3f62-4e54-9e3c-298e4ea6c3e5@g10g2000yqh.googlegroups.com> <ho5jpd$gir$1@news.onet.pl> <hog3hh$s2g$1@news.task.gda.pl> <343ca24e-feae-4bf0-ba6c-ea59a4884c35@x12g2000yqx.googlegroups.com> <hoigb3$lrn$1@news.task.gda.pl> <hoiitj$c8i$1@news.onet.pl> <hoinn7$61u$1@news.task.gda.pl> NNTP-Posting-Host: 83.77.112.7 Mime-Version: 1.0 X-Trace: posting.google.com 1269640037 23585 127.0.0.1 (26 Mar 2010 21:47:17 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Fri, 26 Mar 2010 21:47:17 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: j21g2000yqh.googlegroups.com; posting-host=83.77.112.7; posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6,gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit