Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multithreading e Asyncio in Python - TPSI Presentation

Questo progetto è una Single Page Application (SPA) realizzata per la materia TPSI (Tecnologie e Progettazione di Sistemi Informatici e di Telecomunicazioni). La presentazione esplora i paradigmi di concorrenza in Python, analizzando le differenze tra Multithreading e I/O Asincrono.

🚀 Tecnologie Utilizzate

  • React: Libreria per la costruzione dell'interfaccia utente.
  • Vite: Build tool ultra-rapido per lo sviluppo frontend.
  • Lucide React: Set di icone per il sistema di navigazione.
  • CSS3: Gestione della palette custom tramite variabili native.

🤖 Sviluppo Assistito da AI

Questo progetto è stato sviluppato adottando un approccio AI-First. L'intelligenza artificiale (Gemini) è stata utilizzata come collaboratore tecnico per le seguenti fasi:

  1. Analisi del Contenuto: Elaborazione del documento tecnico fornito ("Dilecce_Approfondimento.pdf") per estrarre i punti chiave su GIL, coroutine ed event loop.
  2. UI/UX Design: Generazione di un layout responsivo basato su una palette specifica, ottimizzando la gerarchia visiva per scopi didattici.
  3. Refactoring del Codice: Pulizia della struttura JSX, implementazione di uno stato React per il burger menu e gestione dello scrolling fluido.
  4. Debug: Correzione dinamica degli errori di sintassi relativi alle variabili CSS all'interno degli stili inline di React.

📦 Installazione e Utilizzo

Per avviare la presentazione in locale, segui questi passaggi:

  1. Clona il progetto ed entra nella directory:

    cd tpsi-presentation
  2. Installa le dipendenze:

    npm install
  3. Avvia il server di sviluppo:

    npm run dev

📊 Contenuti Scientifici

La presentazione copre i seguenti argomenti estratti dalla ricerca di Riccardo Dilecce:

Multithreading

  • Utilizza il modulo threading per creare più thread all'interno dello stesso processo.
  • I thread condividono la memoria e sono adatti per operazioni I/O-bound come lettura/scrittura su file.
  • A causa del Global Interpreter Lock (GIL), non è possibile eseguire più thread in parallelo su più core per operazioni CPU-bound.
  • Introduce complessità legate alla sincronizzazione come lock, race condition e deadlock.

Asyncio (I/O Asincrono)

  • Utilizza il modulo asyncio e si basa su un event loop che gestisce molte operazioni concorrenti tramite coroutine.
  • Sfrutta la cooperazione delle funzioni asincrone (async/await) per sospendere e riprendere l'esecuzione durante le attese di I/O.
  • Risulta più efficiente e scalabile nella gestione di un elevato numero di operazioni I/O concorrenti.
  • Garantisce migliori prestazioni nei contesti I/O-bound moderni, pur richiedendo una struttura del codice specifica.

Autore: Riccardo Dilecce Istituto: Istituto di Istruzione Superiore "Archimede" - Treviglio

About

Presentazione di TPSI riguardante il Multithreading e l'AsyncIO

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages