python使用装饰器和线程限制函数执行时间的方法
本文实例讲述了python使用装饰器和线程限制函数执行时间的方法。分享给大家供大家参考。具体分析如下:
很多时候函数内部包含了一些不可预知的事情,比如调用其它软件,从网络抓取信息,可能某个函数会卡在某个地方不动态,这段代码可以用来限制函数的执行时间,只需要在函数的上方添加一个装饰器,timelimited(2)就可以限定函数必须在2秒内执行完成,如果执行完成则返回函数正常的返回值,如果执行超时则会抛出错误信息。
# -*- coding: utf-8 -*- from threading import Thread import time class TimeoutException(Exception): pass ThreadStop = Thread._Thread__stop#获取私有函数 def timelimited(timeout): def decorator(function): def decorator2(*args,**kwargs): class TimeLimited(Thread): def __init__(self,_error= None,): Thread.__init__(self) self._error = _error def run(self): try: self.result = function(*args,**kwargs) except Exception,e: self._error =e def _stop(self): if self.isAlive(): ThreadStop(self) t = TimeLimited() t.start() t.join(timeout) if isinstance(t._error,TimeoutException): t._stop() raise TimeoutException('timeout for %s' % (repr(function))) if t.isAlive(): t._stop() raise TimeoutException('timeout for %s' % (repr(function))) if t._error is None: return t.result return decorator2 return decorator @timelimited(2) def fn_1(secs): time.sleep(secs) return 'Finished' if __name__ == "__main__": print fn_1(4)
希望本文所述对大家的Python程序设计有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Explication détaillée de Deepseekapi Access and Call: Quick Start Guide Cet article vous guidera en détail comment accéder et appeler Deepseekapi, vous aidant facilement à utiliser des modèles d'IA puissants. Étape 1: Obtenez la clé de l'API pour accéder au site officiel Deepseek et cliquez sur la "plate-forme ouverte" dans le coin supérieur droit. Vous obtiendrez un certain nombre de jetons gratuits (utilisés pour mesurer l'utilisation de l'API). Dans le menu de gauche, cliquez sur "Apikeys" puis cliquez sur "Créer Apikey". Nommez votre apikey (par exemple, "test") et copiez immédiatement la clé générée. Assurez-vous d'enregistrer correctement cette clé, car elle ne sera affichée qu'une seule fois

Cet article explore les fonctions de trading quantitatives des trois principaux échanges, Binance, Okx et Gate.io, visant à aider les commerçants quantitatifs à choisir la bonne plate-forme. L'article introduit d'abord les concepts, les avantages et les défis du trading quantitatif, et explique les fonctions qu'un excellent logiciel de trading quantitatif devrait avoir, tels que le support API, les sources de données, les outils de backtesting et les fonctions de contrôle des risques. Par la suite, les fonctions de trading quantitatives des trois échanges ont été comparées et analysées en détail, soulignant respectivement leurs avantages et leurs inconvénients, et enfin en donnant des suggestions de sélection de plate-forme pour les commerçants quantitatifs de différents niveaux d'expérience, et soulignant l'importance de l'évaluation des risques et du back-test stratégique. Que vous soyez un commerçant quantitatif novice ou expérimenté, cet article vous fournira une référence précieuse

Bibliothèque DeepSeek Deep Learning Python Call Guide Deepseek est une puissante bibliothèque d'apprentissage en profondeur qui peut être utilisée pour construire et former divers modèles de réseau neuronal. Cet article présentera en détail comment utiliser Python pour appeler Deepseek pour le développement de l'apprentissage en profondeur. Étapes pour appeler Deepseek avec Python 1. Installez Deepseek assurez-vous que l'environnement Python et les outils PIP sont installés. Installez Deepseek avec la commande suivante: pipinstalldeepseek2.

ANBI Alpha est une plate-forme d'agrégation d'outils et de services pour les commerçants et investisseurs professionnels sur la plate-forme Binance. Ses fonctions principales incluent: 1. Strategy Square, qui rassemble différentes stratégies de trading; 2. Builder de stratégie, qui autorise les stratégies de trading personnalisées; 3. Analyse avancée des données, fournissant des outils d'analyse de marché; 4. Services de niveau institutionnel pour répondre aux besoins des investisseurs professionnels.

En 2024, les échanges de crypto-monnaie traditionnels qui prennent en charge l'envoi directement des instructions de couverture des options via les terminaux de trading: 1. Déribit prend en charge des stratégies avancées telles que la couverture de Delta et le scalping gamma, et fournissent une couverture Web / API en un clic; 2. OKX prend en charge les outils de combinaison de couverture et de stratégie de volatilité et un panneau de couverture intégré sur le Web / l'application; 3. Binance prend en charge la couverture protectrice, nécessitant des positions manuelles ou API; 4. CME, offrant des options standard, nécessitant un accès via les courtiers; 5. Ledgerx, fournissant des outils de couverture de niveau professionnel, nécessitant une certification institutionnelle.

De nombreux développeurs de sites Web sont confrontés au problème de l'intégration de Node.js ou des services Python sous l'architecture de lampe: la lampe existante (Linux Apache MySQL PHP) a besoin d'un site Web ...

Python Parses Latex Multi-couches supports: construire un dictionnaire multidimensionnel beaucoup de latex ...

Générez la combinaison de permutation basée sur le jeu de caractères et le numéro de couche. Cet article explorera comment générer des résultats de combinaison de permutation correspondants basés sur un jeu de caractères et un numéro de couche donné pour éviter la duplication ...
