Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    passare oggetto a thread

    ciao a tutti come faccio in questo programma, a passare il riferimento all'ogg al thread?

    codice:
    class mainth{
    
    public static void main(String args[]){
      ogg o = new ogg();
      Runnable r = new th();
      Thread t = new Thread(r);
      t.start();  
    }
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    th.prendiOggetto(o);
    cosi non va bene...

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Creati una classe che estenda Thread, no?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Linguaggio?
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da MItaly
    Linguaggio?
    Sembrerebbe Java

    Quindi sezione cannata
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Originariamente inviato da Alex'87
    Sembrerebbe Java
    Così ad occhio direi anch'io, ma c'è sempre il dubbio C#.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Java, scusate ho sbagliato sex.
    Ora vi posto le classi, qualcosa non funziona. Che ne pensate?

    class contieneth {

    private int a;
    private int b;
    private ogg rif;
    private Runnable r;

    contieneth(ogg o){
    rif = o;
    r = new th();

    }

    public int getA(){
    return a;
    }

    public int getB(){
    return b;
    }

    public void setA(int a){
    this.a = a;
    }

    public void setB(int b){
    this.b = b;
    }

    public ogg getRif(){
    return rif;
    }

    public void esegui(){
    //Thread t = new Thread(r);
    //t.start();
    }


    }

    class th extends contieneth implements Runnable{

    public void run(){
    try{
    System.out.println("passo da qui ciao");
    super.setA(getRif().metodo1());

    Thread.sleep(5000);

    super.setB(getRif().metodo2());

    System.out.println(super.getA() + super.getB());
    }
    catch (InterruptedException e){
    System.out.println("Thread interrotto");
    }

    }

    }

    class ogg{


    public int metodo1(){
    System.out.println("metodo1");
    return 5;
    }

    public int metodo2(){
    System.out.println("metodo2");
    return 2;
    }

    public void metodo3(){
    System.out.println("metodo3");
    }


    }

    class mainth{

    public static void main(String args[]){
    ogg o = new ogg();

    contieneth ogg2 = new contieneth(o);

    // ogg2.esegui();
    }
    }



  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    il mio obiettivo è di riuscire a cambiare il valore delle variabili a cui ha accesso un thread. lo dico, perchè se no mi sa che non si capisce. Nel costruttore del thread potrei farlo la prima volta...ma poi?!

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    ho fatto passi avanti...ma non riesco a capire come fare a cambiare il valore di A.
    Se voglio impostare a = 1000 e poi farlo elaborare dal thread, e cosi via....
    ad esempio poi metto a = 2000 e il thread deve leggere quel valore, cosa devo fare?

    class th implements Runnable{


    private ogg rif;


    th(ogg o){

    rif=o;
    }

    public void run(){
    try{
    System.out.println("passo da qui ciao");
    rif.setA(rif.metodo1());

    Thread.sleep(5000);

    rif.setB(rif.metodo2());

    System.out.println(rif.getA() + rif.getB());
    }
    catch (InterruptedException e){
    System.out.println("Thread interrotto");
    }

    }

    }

    class ogg{

    private int a;
    private int b;


    public int metodo1(){
    System.out.println("metodo1");
    return 5;
    }

    public int metodo2(){
    System.out.println("metodo2");
    return 2;
    }

    public void metodo3(){
    System.out.println("metodo3");
    }

    public int getA(){
    return a;
    }

    public int getB(){
    return b;
    }

    public void setA(int a){
    this.a = a;
    }

    public void setB(int b){
    this.b = b;
    }


    }

    class mainth{

    public static void main(String args[]){
    ogg o = new ogg();

    Runnable r = new th(o);
    Thread t = new Thread(r);
    t.start();
    o.setA(1000);

    }
    }



    per caso, non è possibile cambiare i valori a cui ha accesso un thread, perchè non si può fermare?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.