Hi,
ich habe gerade ein Beispiel für ein Interthread-Kommunikation abgetippt.
Mir ist dabei aufgefallen, dass eine Methode eine Zahl zurückgibt und diese quasi ins Leere fällt, weil sie nicht benutzt wird, denn die Methode geht auch mit void und ohne return.
Wie gesagt geht das auch mit void und ohne return wunderbar.
Erkennt ihr einen Nutzen daraus?
Liebe Grüße
Reality
ich habe gerade ein Beispiel für ein Interthread-Kommunikation abgetippt.
Mir ist dabei aufgefallen, dass eine Methode eine Zahl zurückgibt und diese quasi ins Leere fällt, weil sie nicht benutzt wird, denn die Methode geht auch mit void und ohne return.
Code:
class Q
{
int n;
boolean valueSet= false;
synchronized int get()
{
if(!valueSet)
try
{
wait();
}catch(InterruptedException e)
{
System.out.println("InterruptedException caught");
}
System.out.println("Nehmen :"+n);
valueSet= false;
notify();
return n; // Das ist die return-Anweisung
}
synchronized void put(int n)
{
if(valueSet)
try
{
wait();
}
catch (InterruptedException e)
{
System.out.println("InterruptedException aufgefangen");
}
this.n=n;
valueSet=true;
System.out.println("Geben: "+n);
notify();
}
}
class Producer implements Runnable
{
Q q;
Producer(Q q)
{
this.q=q;
new Thread(this, "Producer").start();
}
public void run()
{
int i=0;
while(true)
{
q.put(i++);
}
}
}
class Consumer implements Runnable
{
Q q;
Consumer(Q q)
{
this.q=q;
new Thread(this, "Consumer").start();
}
public void run()
{
while(true)
{
q.get();
}
}
}
class PCFixed {
public static void main(String[] args) {
Q q= new Q();
new Producer(q);
new Consumer(q);
System.out.println("Drücken Sie STRG+C, um zu stoppen.");
}
}
Wie gesagt geht das auch mit void und ohne return wunderbar.
Erkennt ihr einen Nutzen daraus?
Liebe Grüße
Reality