2017-09-24 4 views
0

私はPythonスレッドで基本的な質問があります。関数を連鎖させずに複数の関数を実行するために単一のスレッドを使用できますか?

私は例を見て、スレッドが実行する関数を必要としていることを理解しました。 1つのスレッドを使用して複数の機能をシリアルで実行できますか?

もしそうなら、現在の関数からnext関数を呼び出す以外の方法はありますか?

私は 'n'関数を渡すことができますが、私は直列関数を最初に実行する必要はなく、各関数から連鎖する必要がありますか?

+0

ラッパーを持つことによってあなたの 'n'関数を使う関数、確かに。あなたが*そのアプローチを望んでいない*理由は何ですか? –

答えて

0

あなただけのシングルスレッドでの機能のリストを実行したい場合は、次の機能は、すべてのパラメータの同じセットを受け入れなければならないことを

funcs = [ 
    myfunc1, 
    myfunc2, 
    # ... 
] 

def thread_func(): 
    for f in funcs: 
     f(arg1, arg2) 

注意。

+0

私はこのスレッドのようなスレッドを呼び出しています=スレッド(ターゲット=サンプル、kwargs = v2) – syam

+0

私はすべての自分の関数を1つのスレッド自体をシリアルで完了できるかどうかを調べていました。私の全体的なシステムには10個のスレッドが含まれています。各スレッドは各サーバーごとにあり、各スレッドはいくつかの機能を連続的に実行する必要があります。これは私が探しているものです。答えは – syam

0

明らかにはい!

は、あなたが数を取得し、あなたはそれに2を追加し、サイム時間の両方を印刷、単にやりたい
それに5を追加したいと仮定します。

def plusfive(num): 
    print(num+5) 

def plustwo(num): 
    print(num+2) 
    plusfive(num) 

plustwo(34) 
+0

tnxです。しかし、私は関数を連鎖したくない、次の関数を呼び出す関数からの明示的な呼び出しを行うことを意味します。 – syam

+0

リストを使用してforループを使用して動作させることができます。 @Jonathon Reinhartが言及したように – bob

関連する問題