Sobes.tech
Senior

Υπάρχει μια λειτουργία `unpredictableFunc()`, την οποία πρέπει να τυλίξουμε έτσι ώστε να εκτελείται με χρονικό όριο (π.χ., 1 δευτερόλεπτο) και να καταγράφουμε τον χρόνο εκτέλεσης. // Υπάρχει μια λειτουργία που λειτουργεί απεριόριστα και επιστρέφει έναν αριθμό. // Το σώμα της δεν μπορεί να αλλάξει (υποθέτουμε ότι μέσα υπάρχει ένα αίτημα δικτύου). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Πρέπει να τροποποιηθεί η λειτουργία περιτύλιξης, η οποία θα λειτουργεί με ένα καθορισμένο χρονικό όριο (π.χ., 1 δευτερόλεπτο). // Αν η "μακρά" λειτουργία ολοκληρωθεί σε αυτό το χρόνο, τέλεια, επιστρέφουμε το αποτέλεσμα. // Αν όχι, επιστρέφουμε σφάλμα. Το αποτέλεσμα της εκτέλεσης σε αυτήν την περίπτωση δεν μας ενδιαφέρει. // // Επιπλέον, πρέπει να μετρηθεί πόσο χρόνο διήρκεσε αυτή η λειτουργία (απλώς να το εμφανίσουμε στο λογισμικό). // Η υπογραφή της λειτουργίας περιτύλιξης μπορεί να αλλάξει. func predictableFunc() int64 { return unpredictableFunc() }