🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#149846
From: andrzej salwicki
Date: Mon, 22 Mar 2010 15:22
76 lines
3908 bytes
Dziękuję za sugestie (nullpointer i Waldek Kot)

Te rozwiązania nie satysfakcjonują.

Spooler ma zgadzać się na  świadczenie: usługę typu drukuj przez
prawie cały czas, z wyjątkiem chwili gdy
właśnie wykonuje tę usługę.  Nie chcemy zgubić żadnego zgłoszenia i
nie dopuszczamy do bałaganu w kolejce zgłoszeń.

A więc drukuj ma być w zasadzie metodą publiczną, ale czasami ma być
schowana, private.
Ponadto, wywołanie drukuj z zewnątrz ma zawieszać działanie spoolera.
Czyli znowu dobrze by było by drukuj był private - na chwilę.
To potrafię zrobić.
Jak jednak doprowadzic do przerwania spoolera wtedy gdy jakiś klient
wzywa go do wykonania metody drukuj - nie wcześniej ani póżniej?
Jeśli ktos to wie...





On 21 Mar, 18:44, andrzej salwicki <salwi...@gmail.com> wrote:
> Obawiam się, że pytanie jest zbyt trudne.
>
> Rozważmy klasę Spooler, klasę Klient oraz trzy wątki s, a, b.
>
> class Spooler extends Thread {
>     synchronized void drukuj (Plik f) {  }
>     void run ( ) { tu w kółko sprawdzamy czy jest cos do drukowania i
> drukujemy }
>
> }
>
> Spooler s;
> s.start()
>
> class Klient extends Thread {
>
>    void run (0 {
>         ....
>         call s.drukuj(...);
>         ....
>    }
>
> }
>
> Klient a,b;
>    a= new Klient(Spooler s. ...);  a.start();
>    b= new Klient(Spooler s, ...); b.start();
>
> Taki lub podobny schemat chcemy zrealizować. Jak to będzie działać/
>
> =============================================================
>
> On 21 Mar, 18:07, nullpointer <i....@nie.dojdzie.pl> wrote:
>
> > W dniu 2010-03-21 17:29, andrzej salwicki pisze:
>
> > > Czy mo na w efektywny spos b zaprogramowa w tek A tak by pe ni swoje
> > > zadanie i r wnocze nie by got w wiadczyc us ugi? Dok adniej, czy
> > > inne w tki: B, C, ... mog wywo ywa metody publiczne, synchronized
> > > w tku A, powoduj c chwilowe przerwanie akcji w tku A,[ciach]
>
> > Obawiam si , e mylisz w tek z obiektem.
> > W tek B mo e wykona metod x() na rzecz obiektu A (kt ry mo e, ale nie
> > musi by instancj klasy pochodnej po Thread), ale to wywo anie wykona
> > si w w tku B, a nie A.
>
> > Je li chcesz aby w tek B "zleca " zadania do wykonania w tkowi A, to
> > proponuj zainteresowa si interfejsem BlokingQueue i implementuj cymi
> > go klasami, albo kolejkami w og le. No i wzorcami takimi jak Producer i
> > Consumer.
>
> > --
> > np
Technical Details
Message-ID: <09d6aeeb-cc24-4294-a2d3-635311ec2e68@r27g2000yqn.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!r27g2000yqn.googlegroups.com!not-for-mail
References: <4c3b4f20-3f62-4e54-9e3c-298e4ea6c3e5@g10g2000yqh.googlegroups.com> <ho5jpd$gir$1@news.onet.pl> <e0ba4244-1fee-4d67-b918-f4cb27360f2f@q21g2000yqm.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!r27g2000yqn.googlegroups.com!not-for-mail
From: andrzej salwicki <salwicki@gmail.com>
Newsgroups: pl.comp.lang.java
Subject: Re: czy
 wątki mogą świadczyć usługi?
Date: Mon, 22 Mar 2010 08:22:01 -0700 (PDT)
Organization: http://groups.google.com
Lines: 84
Message-ID: <09d6aeeb-cc24-4294-a2d3-635311ec2e68@r27g2000yqn.googlegroups.com>
References: <4c3b4f20-3f62-4e54-9e3c-298e4ea6c3e5@g10g2000yqh.googlegroups.com>  <ho5jpd$gir$1@news.onet.pl> <e0ba4244-1fee-4d67-b918-f4cb27360f2f@q21g2000yqm.googlegroups.com>
NNTP-Posting-Host: 83.24.115.214
Mime-Version: 1.0
X-Trace: posting.google.com 1269271321 9824 127.0.0.1 (22 Mar 2010 15:22:01 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Mon, 22 Mar 2010 15:22:01 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: r27g2000yqn.googlegroups.com; posting-host=83.24.115.214;  posting-account=mOAt8AoAAAD-4GmZpFvOq4UfjMYbZdfY
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10)  Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10,gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit