Vai al contenuto principale
🔒 Modalità anteprima. Le prime quindici lezioni di Foundations sono gratuite; questa è Pro. Avvia un trial di 7 giorni per sbloccare l'editor, i suggerimenti AI e il resto del programma. Carta richiesta, disdici in qualsiasi momento dalla Dashboard.Avvia trial di 7 giorni →
← CorsiSenior Deep-DivesModulo 1 · Concorrenza e aspetti interni asincroniconcurrent.futures vs asyncio vs threadingpredict9 / 161
+125 XP
Compito
📝 **Attività:** Prevedere il verdetto di 4 righe dal selettore: un verdetto per carico di lavoro. 📋 Implementa la funzione sopra. I test vengono eseguiti automaticamente. 💡 **Suggerimento:** Rileggi la teoria se rimani bloccato.
Predici output

Leggi il codice attentamente

def pick(workload):
    """workload = dict with keys: kind ('io' or 'cpu'),
                                  has_async_lib (bool),
                                  is_numpy_heavy (bool)."""
    if workload["kind"] == "io":
        if workload["has_async_lib"]:
            return "asyncio"
        return "threads"
    # CPU-bound
    if workload["is_numpy_heavy"]:
        return "stay-single"
    return "multiprocessing"

cases = [
    # Async HTTP client (aiohttp / httpx) — io + async lib available
    {"kind": "io",  "has_async_lib": True,  "is_numpy_heavy": False},
    # Legacy sync requests + 100 calls — io but no async lib
    {"kind": "io",  "has_async_lib": False, "is_numpy_heavy": False},
    # NumPy matrix multiply — cpu but C-extension releases GIL
    {"kind": "cpu", "has_async_lib": False, "is_numpy_heavy": True},
    # Pure-Python combinatorial search — cpu, all Python
    {"kind": "cpu", "has_async_lib": False, "is_numpy_heavy": False},
]

for c in cases:
    print(pick(c))

# What does this print? Type your prediction.

Cosa stamperà il programma? Scrivi qui:

💬 Discussione

Sii il primo a fare una domanda o condividere un consiglio.
Accedi per partecipare alla discussione. La lettura è gratuita.
Caricamento discussione…