Autor Thema: Thread oder nicht Thread  (Gelesen 2443 mal)

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Thread oder nicht Thread
« am: 31.01.07 - 18:23:17 »
Hi @Kaffeeanbauer,

ich hätte da mal eine Verständisfrage. Kann man eine Domino Connection über DIIOP auch ohne Thread aufrufen ? So sieht die Main jetzt aus.

public class gkstart {
    public static void main(String[] args) {
       
   
// --- Öffnen der Domino Verbindung
    DominoC dc = new DominoC();
    Thread nt = new Thread((Runnable)dc);
    nt.start();
   }
   
}

Meine Frage. Wenn ich jetzt über die Domino-Verbindung Daten hole und sie wo anders hin speichern möchte, dann laufen bei Threads doch die Programme parallel los oder ? Das heißt, bei Programme:
1. Daten Domino holen
2. Ort wo die Daten hin sollen.
starten beide und komme auch beide gleich an. Einen Sleep einzubauen, der dann auf den anderen Thread wartet ist doch nicht so gut in der Praxis oder ? Man weiss ja nicht im voraus, wie lange das "Daten holen" dauert.

Danke im voraus.

Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Thread oder nicht Thread
« Antwort #1 am: 31.01.07 - 19:13:52 »
Hi,

Corba Sessions brauchen keinen eigenen Thread? Bin mir nicht 100% sicher.
Zumindest funktioniert das bei mir so.
Bei Local immer einfacher mit NotesThread.sinitThread(), stermThread() arbeiten.

Threading bringt eine Komplexität in diese ganze Geschichte, die du vielleicht gar nicht willst.
Die Connection erstellst du mit der Klasse NotesFactory.

Das ist hier eine Verbindungsmethode von mir, die mit beiden läuft:
Code
public ReportUser doAction() {

		try {
			
			if (getProp("useIIOP").toString().equals("true")) {
				isCorba = true; 
			} else {
				isCorba = false; 
			}
			if (isCorba) {
				nSession = NotesFactory.createSession(server + ":" + iiopPort);
			} else {
				NotesThread.sinitThread();
				nSession = NotesFactory.createSession();
			}
			ReportUser reportUser = doSpecificAction(nSession);			
			nSession.recycle();
			if (!isCorba) {
				NotesThread.stermThread();
			}
			
			return reportUser;

		} catch (Throwable t) {

			t.printStackTrace();
			if (nSession != null)
				try {
					nSession.recycle();
				} catch (NotesException e) {
					// catch not needed here!

				}
			nSession = null;

			throw new RuntimeException(t);



		}

	}

Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: Thread oder nicht Thread
« Antwort #2 am: 31.01.07 - 19:22:31 »
wunderbar. Habe es jetzt ohne Thread hinbekommen.

: )

Danke.
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: Thread oder nicht Thread
« Antwort #3 am: 31.01.07 - 19:42:12 »
Und da habe ich noch eine Frage.

wenn ich zwei Klassen über die Main aufrufe. s. Beispiel. Wie übergebe ich jetzt die Daten aus der ersten Klasse an die zweite ?

Ich weiss, dass sind wohl Grundlagen, aber so langsam komme ich dahinter. Mir fehlt jetzt noch ein bißchen schnelles Verstehen.

: ) --> Will da jetzt mal tiefer rein. Mit dem Eclipse komme ich schon ganz gut klar.


class holen{
 
   public void get()
      {
      hol was, los tue es...;
      }
   }

class ausgabe{
 
   public void show()
      {
      System.out.println("start");
      }
   }
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Thread oder nicht Thread
« Antwort #4 am: 31.01.07 - 20:54:49 »
z.B. über Injektion. Hier wird ein Objekt der Instanz Holen an ein Objekt der Instanz Ausgabe übergeben. Erst über den Konstruktor. Dann über setter.

Code
public class Holen {

	private String wert = "erstes Print";
	
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Holen holen = new Holen();
		Ausgabe ausgabe = new Ausgabe(holen);
		System.out.println(ausgabe.show());
		holen.setWert("zweites Print");
		ausgabe.setHolen(holen);
		System.out.println(ausgabe.show());
		
		
	}
	
	public void setWert(String wert) {
		this.wert = wert;
	}
	
	public String getWert() {
		return wert; 
	}
	
	

}
class Ausgabe {
	private Holen holen; 
	Ausgabe (Holen holen) {
		this.holen = holen; 
		
	}
	
	public void setHolen(Holen holen) {
		this.holen = holen;
	}
	
	public String show () {
		return holen.getWert();
	}
	
}

Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz