PDA

View Full Version : [C++] esperti


trallallero
31-01-2007, 21:29
Allora, ho in ballo un potenziale colloquio con una banca in Svizzera che mi potrebbe cambiare la vita e l'agenzia inglese di tramite mi chiede ciò:

4. Have you multithreaded programming experience.?
If so, any experience of STL , or RogueWave.

fino alla domanda 3 ok, ma qui non so cosa rispondere.
Cosa deve sapere uno per poter dire: si ho esperienza in multithreaded programming ?
Perchè in effetti io ho esperienza di programmazione concorrenziale in C, quindi più processi clonati, non threads in C++.
Poi RogueWave non so neanche cosa sia, STL lo conosco poco ma non mi sembra così complesso.
Insomma, si può imparare velocemente 'sta benedetta multithreaded programming ? se si, come ?
Grazie :)

yorkeiser
31-01-2007, 21:48
Non conosco il multithreading in C++ ma lo utilizzo da diverso tempo in Java, e ti dico che utilizzarlo è piuttosto semplice se hai un minimo di concezione di cosa sia un oggetto e la concorrenzialità dei processi. Chiaramente dipende, se poi ti richiedono tecniche assurde che hanno appena inventato al MIT è un altro conto, ma, secondo me, vai liscio liscio. Non credo ci possano essere differenze tremende tra i due linguaggi da questo punto di vista; magari, essendo il C++ un linguaggio di livello leggermente più basso, il multithreading avrà qualche funzionalità in più. Per STL e RogueWave non posso aiutarti, devo ammettere che non ho la minima idea di cosa si stia parlando :D :D

vizzz
31-01-2007, 21:52
RogueWave mai sentito per il resto niente che in un paio di giorni di sbattimento di testa non si possa imparare secondo me.
io darei un occhio ai worker thread.
ciao

trallallero
31-01-2007, 21:57
si, concordo che sicuramente imparare la teoria n 2 giorni si può fare, avendo alle spalle 8 anni di esperienza. Come quando ho imparato a suonare l'armonica avendo 10 anni di chitarrista solista blues, è stata una passeggiata :D Ma la pratica è un'altra cosa e soprattutto il colloquio, se ci sarà, è ... in inglese :rolleyes:
Dove posso dare velocemente una lettura con qualche esempio ?
Grazie delle risposte :)

trallallero
31-01-2007, 21:59
dimenticavo ... è un pò che lavoro qualche volta in C, sennò PL/SQL ma di solito test alfa, permessi beta, telefonate per documentazione inesistente, valutazione rischio beta, burocrazia, burocrazia, burocrazia, burocrazia :muro:
Me ne vojo annà!!!! :cry:

vizzz
31-01-2007, 22:07
mi sono scontrato una volta con PL1, e stavo per piangere davvero ehehe
prova a dare un occhio a questo:http://www.codeproject.com/threads/genericthreadclass.asp

trallallero
31-01-2007, 22:07
RogueWave mai sentito per il resto niente che in un paio di giorni di sbattimento di testa non si possa imparare secondo me.
io darei un occhio ai worker thread.
ciao
worker thread ? cioè ?

trallallero
31-01-2007, 22:11
mi sono scontrato una volta con PL1, e stavo per piangere davvero ehehe
prova a dare un occhio a questo:http://www.codeproject.com/threads/genericthreadclass.asp
grazie ma in effetti non ho specificato ... Non M$ ma Unix :stordita:

trallallero
31-01-2007, 22:28
vabbè, ho trovato questo:
http://docs-pdf.sun.com/816-5137/816-5137.pdf
grazie delle risposte, prevedo flussi incontrollati di adrenalina domani :D

tomminno
31-01-2007, 22:37
Allora, ho in ballo un potenziale colloquio con una banca in Svizzera che mi potrebbe cambiare la vita e l'agenzia inglese di tramite mi chiede ciò:

fino alla domanda 3 ok, ma qui non so cosa rispondere.
Cosa deve sapere uno per poter dire: si ho esperienza in multithreaded programming ?


In teoria l'aver affrontato le problematiche di un programma con più thread, con relativa sincronizzazione e gestione.


Perchè in effetti io ho esperienza di programmazione concorrenziale in C, quindi più processi clonati, non threads in C++.


Le librerie per thread che conosco sono tutte in C (PThreads, Win32)


Poi RogueWave non so neanche cosa sia, STL lo conosco poco ma non mi sembra così complesso.
Insomma, si può imparare velocemente 'sta benedetta multithreaded programming ? se si, come ?
Grazie :)

RogueWave mai sentito, per l'STL, beh come non usarla parlando di C++?

trallallero
01-02-2007, 09:03
In teoria l'aver affrontato le problematiche di un programma con più thread, con relativa sincronizzazione e gestione.
appunto, siccome non l'ho mai fatto saró sincero e diró che so qualcosa ma non ho esperienza. Meglio che una figuraccia dopo.

Le librerie per thread che conosco sono tutte in C (PThreads, Win32)
infatti sto guardando quelle

RogueWave mai sentito, per l'STL, beh come non usarla parlando di C++?
mai avuto l'esigenza. Ho modificato programmi che usano STL, ma non l'ho mai usato per programmi miei.

tomminno
01-02-2007, 11:07
appunto, siccome non l'ho mai fatto saró sincero e diró che so qualcosa ma non ho esperienza. Meglio che una figuraccia dopo.


Mai usato i socket?


mai avuto l'esigenza. Ho modificato programmi che usano STL, ma non l'ho mai usato per programmi miei.

Mai usato string, stream, vector,...?

trallallero
01-02-2007, 11:21
Mai usato i socket?
si ma per sistemi server-client, é diversa la cosa. Un conto é clonare figli un conto gestire threads che comunicano tra loro e magari usano shared memory, stati etc ...

Mai usato string, stream, vector,...?
si ma solo per modificare programmi di altri. Sicuramente sbaglio ma per quelle cose uso ancora il C. Non mi sembra diano un gran vantaggio, per me il C++ é OO, class

tomminno
01-02-2007, 11:31
si ma per sistemi server-client, é diversa la cosa. Un conto é clonare figli un conto gestire threads che comunicano tra loro e magari usano shared memory, stati etc ...


Intanto è una tipica applicazione multithread. Magari devi evitare che più thread scrivano sul socket in parallelo compromettendo la corretta comunicazione dei dati.


si ma solo per modificare programmi di altri. Sicuramente sbaglio ma per quelle cose uso ancora il C. Non mi sembra diano un gran vantaggio, per me il C++ é OO, class

Sai è tanto più comodo vector<string> che non char **.
Praticamente te usi il "C con le classi".

trallallero
01-02-2007, 11:52
Intanto è una tipica applicazione multithread. Magari devi evitare che più thread scrivano sul socket in parallelo compromettendo la corretta comunicazione dei dati.
si, diciamo che potrei imparare l'argomento in fretta vista l'esperienza in server side (Edison Tel penso stia ancora usando il progetto fatto da me) ma vallo a spiegare al cliente ;)

Sai è tanto più comodo vector<string> che non char **.
Praticamente te usi il "C con le classi".
beh proprio cosí no, ma quasi :D
Infatti sto pensando di sfruttare il tempo libero per rinforare un pó sto C++ ... in fondo mi manca solo quello per affrontare l'Europa :huh:

cionci
01-02-2007, 20:17
RogueWave mai sentito, per l'STL, beh come non usarla parlando di C++?
Credo che ci sia qualche problemino di concorrenza a condividere container STL fra thread... Sinceramente non ho mai approfondito la cosa e quando mi è servito ho sempre cercato di limitare i danni ad un livello più alto...

trallallero
02-02-2007, 11:17
se qualcun altro é interessato all'argomento (che avrei anche potuto mettere nel titolo :stordita: ) ho trovato questo:
http://www.llnl.gov/computing/tutorials/pthreads/

jappilas
02-02-2007, 12:43
se qualcun altro é interessato all'argomento (che avrei anche potuto mettere nel titolo :stordita: ) ho trovato questo:
http://www.llnl.gov/computing/tutorials/pthreads/
in tal caso c'è un paper che ho trovato che ti potrebbe interessare ( why posix threads are unsuitable for C++ (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1940.pdf) )
;)

trallallero
02-02-2007, 12:59
in tal caso c'è un paper che ho trovato che ti potrebbe interessare ( why posix threads are unsuitable for C++ (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1940.pdf) )
;)
Accesso Negato

Utente non autorizzato all'accesso di questo sito.
Questo si verifica nei casi in cui si tenta di accedere ad un sito web bloccato in base alle policy aziendali.

Per ricevere assistenza, contattare l'help desk.
:rolleyes:
vabbé, grazie, scaricheró da casa che é meglio, qui sono in un gulag :D

cionci
02-02-2007, 20:08
Comunque per quanto riguarda il thread safety della STL: è un vero casotto... In pratica conviene sempre gestire la risorsa come una normale risorsa condivisa sia in problemi di lettura/scrittura, sia in problemi di sola lettura multipla...in quanto il livello di thread safety della STL non è definito dallo standard, ma dipende dalla singola implementazione.

Quindi attenzione ad usare gli iteratori...bisogna prima assicurarsi la mutua esclusione sul container...

trallallero
02-02-2007, 21:03
Comunque per quanto riguarda il thread safety della STL: è un vero casotto... In pratica conviene sempre gestire la risorsa come una normale risorsa condivisa sia in problemi di lettura/scrittura, sia in problemi di sola lettura multipla...in quanto il livello di thread safety della STL non è definito dallo standard, ma dipende dalla singola implementazione.

Quindi attenzione ad usare gli iteratori...bisogna prima assicurarsi la mutua esclusione sul container...
ecco perchè non m'hanno chiamato, gli serve uno esperto veramente ...
Comunque oggi ho dato un'occhiata a questi pthread_... ed è interessante. Nel documento che ho trovato fa vedere (questa parte l'ho letta di sfuggita) la differenza in prestazioni tra clonazione (fork) e 3ds. Notevole vantaggio per i secondi :eek:
Senti ma esiste un 3d (scusa il gioco di parole :D ) nel forum che tratta questo argomento ? sennò ne apriamo uno, può essere utile come scusa per studiarli un pò e approfondire ;)