Risultati da 1 a 8 di 8

Discussione: Thread altri problemi

  1. #1
    Il Niubbi
    Data Registrazione
    18-12-03
    Località
    Roma
    Messaggi
    246

    Predefinito Thread altri problemi

    Ciao, ritorno qui per chiedere ancora un aiuto sui threader, il problema è nel'accesso alle variabili, io una variabile INT che inizializzo a 2 e fin qui nessun problema, però quando a questa variabile INT deve accedere una funzione del secondo thread ecco che invece di leggerla come 2 la legge come 0, per quale motiva da questo problema??? anche perchè con altre variabili questo non succede.

  2. #2
    L'Onesto
    Data Registrazione
    20-12-03
    Messaggi
    1,162

    Predefinito Re: Thread altri problemi

    Per utilizzare le variabili dei thread devi per forza utilizzare variabili globali, non puoi ad esempio fare come hai fatto tu accedere alla variabile di un thread da un altro thread che sia il principale o meno, questo xkè i thread sono schedulati dal processore come processi veri e propri (è un pò come se tu volessi accedere ad una variabile privata di un processo di sistema). Le scelte che puoi fare sono 2: o dichiari come globali a tutto il progetto tutte le variabili del thread a cui vuoi accedere, o come si usa maggiormente ti fai una struttura globale nella quale inserisci tutte le variabili a cui vuoi accedere

  3. #3
    Shogun Assoluto L'avatar di Mithrandir
    Data Registrazione
    28-04-03
    Località
    Reginasirarefà
    Messaggi
    26,017

    Predefinito Re: Thread altri problemi

    Il thread è una cosa, il processso è un'altra...come detto anche in altri topic.
    Un processo ha uno o più thread...un thread è parte di un processo, e condivide una parte dello spazio di indirizzamento con gli altri thread dello stesso processo.

    Ora con un thread puoi accedere a tutti gli oggetti del chiamante, purchè ci sia un riferimento (e.g.: nel costruttore del thread gli passi un riferimento/puntatore all'oggetto)

  4. #4
    Il Niubbi
    Data Registrazione
    18-12-03
    Località
    Roma
    Messaggi
    246

    Predefinito Re: Thread altri problemi

    non capisco se state dicendo due cose uguali in maniera differente oppure no .

    comunque dichiarandole globali il thread le legge.

  5. #5
    L'Onesto
    Data Registrazione
    20-12-03
    Messaggi
    1,162

    Predefinito Re: Thread altri problemi

    Quote:
    Il thread è una cosa, il processso è un'altra...come detto anche in altri topic.
    Un processo ha uno o più thread...un thread è parte di un processo, e condivide una parte dello spazio di indirizzamento con gli altri thread dello stesso processo.
    Non mi mettere in bocca cose che non ho detto...Io non ho mai detto che il thread è un processo, ho soltanto detto che un thread viene schedulato come un processo vero e proprio (pur non essendolo) ed è proprio questo il loro punto di forza...(Programmare applicazioni per Microsoft Windows, Jeffery Richter)

  6. #6
    Il Niubbi L'avatar di loris_p
    Data Registrazione
    05-03-05
    Località
    Treviso
    Messaggi
    199

    Predefinito Re: Thread altri problemi

    eh no non l'avrai detto ma l'hai lasciato capire..uno che legge la tua definizione di thread ne risulterebbe piuttosto confuso..la definizione perfetta come la darebbe un libro è quella di Mithrandir81, quindi non è come dici tu riguardo alla condivisione di oggetti, altrimenti scusa, se un thread venisse schedulato (dal sistema operativo, cmq, e non dal processore) come un processo, ma non fosse possibile condividerne lo spazio di indirizzamento
    Quote:
    è un pò come se tu volessi accedere ad una variabile privata di un processo di sistema
    proprio come un processo, sarebbe banalmente un processo
    invece la differenza tra thread e processi è un'altra, non tanto lo scheduling, visto che se fosse solo per questo basterebbe creare un processo figlio, ma proprio, come diceva Mithrandir81, il fatto che il thread è una sottounità logica di lavoro di un processo, e che condivide parte dello spazio di indirizzamento.. su linux è più comprensibile perché, non esistendo i thread in maniera concreta e pesante come per altri so (seppure esistano le librerie che li implementano), essi sono semplicemente realizzabili creando un processo figlio con una semplice fork e settandone opportunamente la condivisione degli indirizzamenti..

  7. #7
    L'Onesto
    Data Registrazione
    20-12-03
    Messaggi
    1,162

    Predefinito Re: Thread altri problemi

    Diciamo allora piuttosto che un thread è un sottoprocesso di quello principale che ne condivide uno spazio di indirizzamento (non l'ho mai negato), la forza dei thread è quella che vengono schedulati come processi veri e propri (dal SO) in modo da poter fare cose "indipendenti" per così dire dal processo padre e poter eventualmente nel frattempo accedere a dati condivisi (dove poi nascono le corse critiche)...

  8. #8
    Il Niubbi L'avatar di loris_p
    Data Registrazione
    05-03-05
    Località
    Treviso
    Messaggi
    199

    Predefinito Re: Thread altri problemi

    ottimo
    ora si che ci siamo capiti

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice HTML è Disattivato