Article View: pl.comp.lang.java
Article #153141Dodawanie do kolejki SynchronousQueue
From: pamysz
Date: Thu, 17 Nov 2011 16:01
Date: Thu, 17 Nov 2011 16:01
70 lines
3604 bytes
3604 bytes
W momencie wykonywania instrukcji : kolejkaSQ.put(obiekt) program
zawiesza się.
Dla kolejki LinkedBlockingQueue wszystko jest ok.
Kiedyś (przed reinstalacją NB i JDK) wszystko działało.
Teraz jest NetBeans 7.0.1, Java 1.6.0_24.
Poniżej kod klasy:
package testkolejki;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.SynchronousQueue;
import java.util.logging.Level;
import java.util.logging.Logger;
public class TestKolejki {
class OnOf {
boolean on;
public OnOf(boolean on)
{
this.on = on;
}
}
public static void main(String[] args)
{
LinkedBlockingQueue<OnOf> kolejkaLQ = new
LinkedBlockingQueue();
SynchronousQueue<OnOf> kolejkaSQ = new SynchronousQueue();
TestKolejki tk = new TestKolejki();
OnOf o1 = tk.new OnOf(true);
OnOf o2 = tk.new OnOf(false);
OnOf oN = tk.new OnOf(false);
//----------------------------------------------------------------------
System.out.println("1. Kolejka LQ pusta = " +
kolejkaLQ.isEmpty());
System.out.println("1. Kolejka SQ pusta = " +
kolejkaSQ.isEmpty());
System.out.println("Adres ok1 = " + o1.hashCode() + ", " +
o1.toString());
System.out.println("Adres ok2 = " + o2.hashCode() + ", " +
o2.toString());
System.out.println("---------- Koniec deklaracji
-----------------------------------------");
try
{
kolejkaLQ.put(o2);
System.out.println("2. Kolejka LQ pusta = " +
kolejkaLQ.isEmpty());
kolejkaSQ.put(o1);// tutaj program się wiesza
System.out.println("2. Kolejka SQ pusta = " +
kolejkaSQ.isEmpty());
System.out.println("---------- Koniec dodawania do kolejki
-----------------------------------------");
oN = kolejkaLQ.take();
} catch (InterruptedException ex) {
System.out.println("Błąd !!!!!!!!!!!!!!!!!");
Logger.getLogger(TestKolejki.class.getName()).log(Level.SEVERE, null,
ex);
}
System.out.println("3. Kolejka LQ pusta = " +
kolejkaLQ.isEmpty() + ", okN: " + oN.toString());
System.out.println("3. Kolejka SQ pusta = " +
kolejkaSQ.isEmpty());
System.out.println("-------- Koniec programu
-------------------------------------------");
//----------------------------------------------------------------------
}
}
Z góry dziękuję za pomoc.
Technical Details
Message-ID:
<92f306da-2956-452f-bc70-79d91cf3a8f6@p1g2000yqh.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!p1g2000yqh.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!p1g2000yqh.googlegroups.com!not-for-mail From: pamysz <pamysz1966@gmail.com> Newsgroups: pl.comp.lang.java Subject: Dodawanie do kolejki SynchronousQueue Date: Thu, 17 Nov 2011 08:01:08 -0800 (PST) Organization: http://groups.google.com Lines: 72 Message-ID: <92f306da-2956-452f-bc70-79d91cf3a8f6@p1g2000yqh.googlegroups.com> NNTP-Posting-Host: 77.237.0.224 Mime-Version: 1.0 X-Trace: posting.google.com 1321546074 23726 127.0.0.1 (17 Nov 2011 16:07:54 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 17 Nov 2011 16:07:54 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: p1g2000yqh.googlegroups.com; posting-host=77.237.0.224; posting-account=9BfatQoAAAAF01RXcwJ-F5Osfu9PDMLN User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-Header-Order: UHALERCNK X-HTTP-UserAgent: Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.9.168 Version/11.52,gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit