PDA

Visualizza la versione completa : [C] Eseguire operazioni contemporaneamente


matteever
28-11-2010, 21:26
Mi stavo chiedendo se è possibile in C fare un programma che esegua due processi contemporaneamente, magari uno scelto in precedenza e uno che dipende dai comandi inseriti...

MdE2005
28-11-2010, 22:25
Originariamente inviato da matteever
Mi stavo chiedendo se è possibile in C fare un programma che esegua due processi contemporaneamente, magari uno scelto in precedenza e uno che dipende dai comandi inseriti...
Certo, e ciò si chiama multithreading: puoi creare processi sincroni, con priorità diverse e soprattutto è possibile sospendere temporaneamente i thread e riprendere in un secondo tempo la loro esecuzione.

Celebron
28-11-2010, 22:47
Originariamente inviato da MdE2005
Certo, e ciò si chiama multithreading: puoi creare processi sincroni, con priorità diverse e soprattutto è possibile sospendere temporaneamente i thread e riprendere in un secondo tempo la loro esecuzione.

a tal proposito conosci qualche sito con dei tutorial (conosco approfonditamente il c e il java)? Interesserebbe parecchio anche me
Nel corso di sistemi operativi nella mia università ci hanno dato un ottima base teorica -__- ma hanno rimandato la parte pratica al corso di progettazione che si tiene alla specialistica.

simo_85
29-11-2010, 00:01
A quale OS si fa riferimento?

Celebron
29-11-2010, 00:29
Originariamente inviato da simo_85
A quale OS si fa riferimento?

se lo stai chiedendo in merito alla mia domanda, io lavoro su linux

YuYevon
29-11-2010, 08:11
Originariamente inviato da Celebron
Nel corso di sistemi operativi nella mia università ci hanno dato un ottima base teorica -__- ma hanno rimandato la parte pratica al corso di progettazione che si tiene alla specialistica.

Questa non l'avevo mai sentita, me la segno :)


Originariamente inviato da Celebron
a tal proposito conosci qualche sito con dei tutorial (conosco approfonditamente il c e il java)? Interesserebbe parecchio anche me


Scegli se ti interessa C o Java, sono due mondi diversi. Java ha il suo bravo package standard per la gestione dei thread (puoi studiare le lezioni online presenti nella documentazione ufficiale oppure procurarti un bel libro come Core Java 2); il C offre soluzioni system dependent: se stai su Linux vediti la libreria pthread. Comunque attenzione che una cosa è il multithreading e un'altra il multitasking (al di là dei gusti sui termini): il primo lo puoi trattare appunto con la pthread, il secondo lo si gestisce con fork(), exec*() e annesse e connesse. Ci tenevo a precisare la differenza perché l'op parlava di "processi" ma poi si è discusso di multithreading. Procurati il libro GaPiL se ti interessa il multitasking (cioè più processi, non threads).
E attenzione comunque ai concetti di esecuzione contemporanea di più processi (o threads) ed esecuzione concorrente.


Originariamente inviato da Celebron
se lo stai chiedendo in merito alla mia domanda


Penso che lo stesse chiedendo anche all'op, come al solito hanno tutti la cattiva abitudine di doversi far tirare le informazioni con la tenaglia :yuppi: (l'emoticon è casuale)

ma perché oregon non si vede più? :bhò:

simo_85
29-11-2010, 08:35
Originariamente inviato da Celebron
se lo stai chiedendo in merito alla mia domanda, io lavoro su linux
POSIX Threads Programming (https://computing.llnl.gov/tutorials/pthreads/)
Free Linux Books (http://www.techbooksforfree.com/linux.shtml)
Advanced Linux Programming (http://www.advancedlinuxprogramming.com/alp-folder) (c'è di meglio, ma per iniziraere ed a quest'ora va più che bene) :D
IPC (http://tldp.org/LDP/lpg/node7.html)

Se poi non ti basta PM :madai!?: :D
:ciauz:

Celebron
29-11-2010, 13:25
Grazie mille a entrambi per le risposte :D adesso ho finalmente qualcosa di divertente da imparare

matteever
29-11-2010, 17:20
Ringrazio tutti anch'io...risposte davvero complete...

MdE2005
29-11-2010, 21:07
Originariamente inviato da matteever
Ringrazio tutti anch'io...risposte davvero complete...

Prego :)

Loading