1. #1
    Avatar von uncopyable
    Registriert seit
    19.11.2011
    Beiträge
    282
    Thanked 235 Times in 120 Posts

    Standard Java New Thread

    Hallo,

    gibt es in Java ne möglich einen Neuen Thread mit Parameter und return value zu starten?


    Mit Parameter
    PHP-Code:
    class MyThread extends Thread {
         private 
    String to;
     public 
    MyThread(String to) {
              
    this.to to;
     }
                
     @
    Override
      
    public void run() {
            
    System.out.println("hello " to);
      }
     }
     public static 
    void main(String[] args) {
         new 
    MyThread("world!").start();
     } 
    Mit return value
    PHP-Code:
    import java.util.concurrent.Callable;
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.Future;


    public class 
    Main
    {
        public static 
    void main(final String[] argv)
        {
            final 
    ExecutorService service;
            final 
    Future<String>  task;

            
    service Executors.newFixedThreadPool(1);        
            
    task    service.submit(new Foo());

            try 
            {
                final 
    String str;

                
    // waits the 10 seconds for the Callable.call to finish.
                
    str task.get();
                
    System.out.println(str);
            }
            catch(final 
    InterruptedException ex)
            {
                
    ex.printStackTrace();
            }
            catch(final 
    ExecutionException ex)
            {
                
    ex.printStackTrace();
            }

            
    service.shutdownNow();
        }
    }

    class 
    Foo
        
    implements Callable<String>
    {
        public 
    String call()
        {
            try
            {
                
    // sleep for 10 seconds
                
    Thread.sleep(10 1000);
            }
            catch(final 
    InterruptedException ex)
            {
                
    ex.printStackTrace();
            }

            return (
    "Hello, World!");
        }

    Hab versucht die Beispiele zu kombinieren aber leider funktioniert das nicht so wie ich es gern hätte, vielleicht weiß einer von euch wie ich das am besten lösen kann?

    Danke schonmal


    while( behappy() ) { code(); }

  2. #2
    Avatar von Mentos
    Registriert seit
    18.11.2011
    Beiträge
    451
    Thanked 498 Times in 240 Posts

    Standard AW: Java New Thread

    Nimm doch nen SwingWorker. Den fand ich bzgl. des MClientens sehr passend.
    MfG
    „Es sind nicht unsere Fähigkeiten, die zeigen, wer wir wirklich sind, es sind unsere Entscheidungen.“
    - Albus Dumbledore, Harry Potter 2


    /guestchat registerGuest

  3. The Following User Says Thank You to Mentos For This Useful Post:

    uncopyable (04.04.2012)

  4. #3
    Avatar von patlux
    Registriert seit
    26.10.2011
    Beiträge
    1.196
    Thanked 1.598 Times in 726 Posts
    Blog Entries
    2

    Standard AW: Java New Thread

    Verstehe dein Problem nicht dass zu kombinieren xD

    PHP-Code:
    import java.util.concurrent.Callable; 
    import java.util.concurrent.ExecutionException
    import java.util.concurrent.ExecutorService
    import java.util.concurrent.Executors
    import java.util.concurrent.Future


    public class 
    Main 

        public static 
    void main(final String[] argv
        { 
            final 
    ExecutorService service
            final 
    Future<String>  task

            
    service Executors.newFixedThreadPool(1);         
            
    task    service.submit(new Foo("world!")); 

            try  
            { 
                final 
    String str

                
    // waits the 10 seconds for the Callable.call to finish. 
                
    str task.get(); 
                
    System.out.println(str); 
            } 
            catch(final 
    InterruptedException ex
            { 
                
    ex.printStackTrace(); 
            } 
            catch(final 
    ExecutionException ex
            { 
                
    ex.printStackTrace(); 
            } 

            
    service.shutdownNow(); 
        } 


    class 
    Foo 
        
    implements Callable<String


        private 
    String to
     public 
    Foo(String to) { 
              
    this.to to
     } 

        public 
    String call() 
        { 
            try 
            { 
                
    // sleep for 10 seconds 
                
    Thread.sleep(10 1000); 
    System.out.println("hello " to);
            } 
            catch(final 
    InterruptedException ex
            { 
                
    ex.printStackTrace(); 
            } 

            return (
    "Hello, " to); 
        } 

    Sollte eigentlich gehen. Hatte sowas in Java noch nie benötigt. löl

  5. The Following User Says Thank You to patlux For This Useful Post:

    uncopyable (04.04.2012)

Ähnliche Themen

  1. [BUG] Thread erstellen
    Von DANP im Forum Feedback
    Antworten: 1
    Letzter Beitrag: 26.12.2013, 23:58
  2. Antworten: 8
    Letzter Beitrag: 02.12.2013, 23:41
  3. Antworten: 1
    Letzter Beitrag: 07.07.2013, 17:16
  4. [Java] Swing und Thread
    Von DANP im Forum Java
    Antworten: 2
    Letzter Beitrag: 22.06.2012, 15:44
  5. Antworten: 2
    Letzter Beitrag: 04.01.2012, 23:55
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.