🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #149859

Re: czy wątki mogą świadczyć usługi?

#149859
From: Maciej Sobczak
Date: Fri, 26 Mar 2010 21:47
43 lines
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-mail
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>

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