[Neta] Fonction de tri de veille thread-safe en Python (threading)

Surfant sur la tendance, j'ai créé une fonction thread-safe qui renvoie des résultats de tri. Souhaitez-vous créer quelque chose comme le multitraitement ou le joblib?

from threading import Thread, Lock
from time import sleep

def sleep_sort(values):
    sorted_values = []
    lock = Lock()
    def worker(value):
        sleep(value)
        with lock: sorted_values.append(value)
    threads = [Thread(target=worker, args=(value,)) for value in values]
    for thread in threads: thread.start()
    for thread in threads: thread.join()
    return sorted_values

array = [5, 3, 6, 3, 6, 3, 1, 4, 7]
print(sleep_sort(array))

Résultat de l'exécution (ce script prend 7 secondes pour s'exécuter)


[1, 3, 3, 3, 4, 5, 6, 6, 7]

référence: 2012/03/16 Écrivons le tri de sommeil de manière générique dans Ruby. 2013/05/15 Explication du tri du sommeil 2013/10/24 Training sleepsort 2015/06/09 Tri rouille et sommeil 2015/06/25 Sleep sort écrit en C # 21/10/2015 J'ai essayé d'implémenter le tri du sommeil dans le traitement parallèle de C ++ 15/11/2016 Comparaison multi-thread avec Sleep Sort (js / TS / VB / C # / C ++ / D / Go / HSP (mist)) 2017/04/24 [[Neta] Sleep Sort avec Swift]([Neta] Sleep Sort avec Swift) 2017/04/24 [Neta] Sleep Sort with JavaScript 2017/04/26 [Neta] Sleep Sort in Java 2017/04/26 [Neta] Sleep Sort in Python 2017/04/26 sleep sort

Recommended Posts

[Neta] Fonction de tri de veille thread-safe en Python (threading)
Tri à bulles en Python
Tri personnalisé en Python3
Créer une fonction en Python
Utiliser la fonction de rappel en Python
Trier naturellement le chemin en Python
Fonction ntile (décile) en python
Traitement asynchrone (threading) en python
Tri décroissant avec mongodb en python
Modélisation de fonctions non linéaires en Python
Dessiner la fonction Yin en python
Fonction immédiate (lie) en python
Trier par date en python
Implémenter la fonction power.prop.test de R en python
Avertissement de tri dans la fonction pd.concat
Définition du type d'argument de fonction en python
Notation inclusive dans l'argument de la fonction Python
Ecrire une fonction AWS Lambda en Python
Mesurer le temps d'exécution de la fonction en Python
Trier les gros fichiers texte en Python
Synthèse de fonctions et application en Python
Lors de la spécification de plusieurs clés dans le tri python
Nouveautés de Python 3.9 (2) - Tri des graphes non circulés dirigés en Python
fonction python ①
Précautions lors du décapage d'une fonction en python
[Python] fonction
Prenez la somme logique de List en Python (fonction zip)
[Python] Trier
Python #sort
Mise en œuvre du tri Stuge dans Python 3 (tri à bulles et tri rapide)
fonction python ②
Enregistrer automatiquement les arguments de fonction dans argparse en Python
Récupérer l'appelant d'une fonction en Python
Un mémo que j'ai écrit un tri de fusion en Python
J'ai essayé d'implémenter la fonction gamma inverse en python
Échec d'assertion Python: size.width> 0 && size.height> 0 dans la fonction imshow
Trier les éléments de la liste dans l'ordre spécifié en Python
J'ai essayé d'implémenter le tri sélectif en python
[Python] Manipulation d'éléments dans une liste (tableau) [Trier]
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
fonction d'énumération python
Méta-analyse en Python
Unittest en Python
Python> fonction> Fermeture
Époque en Python
[Python] Fonction de générateur
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python