Beiträge von martin

    Zitat

    Original geschrieben von Becherer
    Mit der Methode interrupt() wird in dem Thread ein internes
    natives Flag gesetzt, welches dann in der run() Methode durch isInterrupted() periodisch abgefragt werden kann.


    Stimmt, nur hab ich noch nie gesehen das jemand das macht. Die Methode interrupt() ist wie gesagt hauptsächlich dazu da, Threds die eigentlich gerade schlafen oder blocken aus diesem Zustand zu holen.

    Es ist auch nicht effektiv: Du kannst ja dein eigenes Flag erstellen, das du setzt und abfragst. Bei so trivialen Sachen ist der Overhead den du durch den Aufruf einer nativen Methode hast viel größer als jeder Performance Gewinn (wäre bei true/flase Abfragen überhaupt einer da?). Außerdem wird ja bei interrupt() noch ein Security Check gemacht und bei Applets sollte normalerweise ein SecurityManger aktiv sein. Die Frage ist also ob du dazu überhaupt berechtigt bist

    Zitat

    Original geschrieben von Becherer
    [...]ein Beenden durch Thread.interrupt() oder durch eine eigene Methode Thread.cancel (welche eine Boolean Variable innerhalb der Berechnung setzt) schlagen fehl.
    <snip/>
    Irgendwelche Ideen?


    deinThread.setPriority(Thread.MIN_PRIORITY);
    am besten noch vor deinThread.start(), da du sonst möglicherweise dasselbe Problem mit Auslastung hast wie bei deiner cancel Methode. Wenns dann nicht geht passt bei deiner cancel Methode was nicht...
    Eine andere Möglichkeit wäre, hin und wieder Thread.yield() aufzurufen, würde dir aber prinzipiell davon abraten; außer es gibt Stellen in deinem Code/Algorithmus, von denen du weißt, dass sie nicht oft, d.i. nicht bei jedem Schlefendurchlauf aufgerufen werden, aber doch regelmäßig - wird wohl eher nicht der Fall sein.
    Erfahrungsgemäß würde ich Threads in GUI Programmen _immer_ MIN_PRIORITY zuweisen, da sonst meistens nicht nur die JVM sondern auch das restliche OS mehr oder weniger `steht' :borg:

    hth

    EDIT: Schau dir mal die JavaDocs für Thread.interrupt() an dann wirst du sehen, dass es unmöglich das sein kann wonach du gesucht hast. Es `weckt' nämlich schlafende oder wartende Threads auf (und der Code für das abfangen der zugehörigen InterruptedException wird ausgefürht)

    Zitat

    Original geschrieben von ze_artfuldodger
    außerdem: ich weiß ned ob das problem ned wesentlich
    tiefer liegt, es gibt ja auch für tcp verbindungen
    timeouts.


    Und wenn das ganze jetzt noch eine Ebene tiefer läge? ich nehm mal an, du hast die beiden Server/Programme/Dienste am selben Kistl rennen. Ich meine Caching auf Betriebssystemlevel.. Is der übliche Schmäh, wie wenn man z.B. Photoshop ladet, beendet, und dann gleich wieder startet.

    Die Frage ist vielleicht etwas tricky: Man kann die Auslagerungsdatei ja auf mehr als eine Festplatte geben. Wenn ich jetzt zwei (physikalische, nicht logische) Festplatten habe, bringts dann etwas das zu tun- auch wenn eine Platte vergleichsweise eher lahm ist?
    Anders ausgedrückt, checkt es Windoze die Daten dann gleichzeitig zu schreiben und/oder zu lesen?

    Eine Suche in der Hilfe hat mich nicht wirklich weitergebracht (Überraschung :hewa: ), und ganz kurz hab ich mich sogar in die Microsoft Knowledge Base vorgewagt.

    Erst mal: Würd mich auch sehr sehr gern an sowas beteiligen. :)
    Vor allem da ich bis jetzt hauptsächlich mit Java und Perl was gemacht hab, wär ein bisschen Horizont erweitern nicht schlecht.

    Zitat

    Original geschrieben von MaxAuthority
    ...nur wie will man so einen workshop organisieren.
    wenn z.B. über Postscript keiner wirklich ahnung hat?


    Es kann sich ja mal einer ein bissl anschauen und dann versuchen den es anderen etwas näher zu bringen. PostScript wär überhaupt witzig: Weiß ja nicht wer von euch grad OOP macht (und Aufgabe 11 schon programmiert hat), aber arithmetische Berechnungen werden direkt in umgekehrt-polnischer Notation eingegeben...

    Zeichenweises einlesen geht in Java afaik nicht. Dein Programm "sieht" den Input von STDIN erst nachdem <Enter> (kann aber plattformabhängig was aderes sein, obwohl ichs nicht glaub) gedrückt wurde.

    Die einzig wirklich brauchbare Lösung ist eine, die erst ab JDK 1.4 funktioniert: Buffer (in dem Fall wohl konkret CharBuffer oder ByteBuffer). Du müsstest eine plattformspezifische - ANSI C bietet sich da an... - Methode schreiben und sie mittels JNI einbinden. Buffer sind so designed, dass sie problemlos mit native Methoden zusammen verwendet werden können. Du findest sie in der Package java.nio

    Wenn du Win2000/XP Pro hast, installier (falls nicht schon passiert) IIS, dann bist du dein eigener SMTP. Das ist nur problematisch wenn du große Mails - so mit Powerpoint Attachment - an viele Leute verschickst, ansonsten egal. Falls du 98/Me hast lad dir z.B. Postcast Server runter. http://www.postcastserver.com glaub ich, ansonsten googeln...

    Beide Programme lassen sich relativ einfach so einstellen, dass man nur von localhost mailen kann, würd ich unbedingt zun :)

    hth

    Zitat

    Original geschrieben von bluefoxx
    kenn doch genug leute, die PC3200 speicher im dualbetrieb einsetzen!


    Ja, das NForce2 kann tatsächlich DualDDR400 (haben sie ganz groß Werbung damit gemacht), bringen tuts nix, wie ich in meinem obigen Posting schon zu erklären versuchte. Es wär halt schade ums Geld für die teuren RAMs, es sei denn man übertaktet den FSB und will sicher gehen das der Arbeitsspeicher das aushält. Trotzdem: bei NForce immer nur Synchronbetrieb

    Zitat

    Original geschrieben von Sidcom
    da scheinen mir das asus a7v333 und das msi kt3v mit athlon xp2100 (266mhz fsb) und 2x256 DDr (266mhz) am schlausten - oder wie seht ihr das?


    Die neuen Athlons haben dann eh 166 MHz (266/333/400 is nur die effektive Taktrate), aber warten bis die billiger sind is halt keine Option wenn der alte PC hin is...
    Das A7V333 kann ich empfehlen, wobei ich fast ein KT400er Board vorziehen würd, so schlecht sind die Chips nämlich nicht. Jedenfalls bringen dir die schnelleren RAMs wirklich nicht viel mit einem NForce2, da läuft das System langsamer(!) mit schnellerem Speicher, weil CPU und Memory nicht synchron takten. KTxxx haben damit kein Problem, konkret ist ein Athlon XP 2100+ mit DDR2700 dann wirklich schneller als mit DDR2100

    Nvidia hat wunderbare Linux Treiber. Die Unified Driver Architecture bedeutet afaik nicht nur, dass du mit einem Treiber alles von RivaTNT bis GeForce4 (abgesehen von der einen oder anderen moblie oder pro Edition) ansteuern kannst - Optimierungen für neue Features mal außer Acht gelassen, die's auf den älteren Karten nun mal ned gibt. Sondern auch, dass sie soweit wie möglich plattformunabhängigen Code schreiben.

    Die Nvidia Linux Treiber haben also dieselbe Codebase wie für Windows und sind auch in etwa so gut..

    Das passt schon so. Das heißt du solltest das Gerät nicht einfach so ausstecken ohne Windows vorher "bescheid" zu geben (ein Programm könnte noch versuchen darauf zuzugreifen).
    Ausblenden kannst unter XP sowieso alle Symbole im Taskleistenmenü...