Python多线程编程的输出格式问题?
迷茫
迷茫 2017-04-17 16:36:38
0
4
712

今天在学习多线程编程,由于多个线程是同时启动的,所以输出也出现在了同一行,怎样才能换行输出呢?
输出结果是这样的:

*** MULTIPLE THREADS
startingstartingstarting   fibfacsum   at:at:at:   Tue Dec 08 22:30:43 2015Tue Dec 08 22:30:43 2015Tue Dec 08 22:30:43 2015


facsum  finished at:finished at:  Tue Dec 08 22:30:44 2015Tue Dec 08 22:30:44 2015

我想要的结果是这样的:

starting  fib    at: Sat Nov 22 09:51:39 2014

starting  fac    at:Sat Nov 22 09:51:39 2014

starting  sum   at:Sat Nov 22 09:51:39 2014

那我应该怎样做呢?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(4)
大家讲道理

まず最初に、ご回答いただきありがとうございます。ただし、Python 初心者の私にはこれらの方法がまだわかりません。
私はこの問題を解決するために他の方法を使用しました。
スレッド間の切り替えは、一方のスレッドが数文実行し、もう一方のスレッドが数文実行するという交互ループで、一方の文が途切れることはないと思っていました。
最初の間違いは、出力ステートメントを次の形式で書いたことです:

リーリー

実際、Python の観点では、これはステートメントではなく、いくつかのステートメントの合計です。

リーリー

この場合、スレッドは互いの出力を中断することになるため、出力ステートメントを変更して次のように置き換えました。

リーリー

この場合、出力は正常になります。

いいねを押す +0
阿神

出力ステートメントにロックを追加します。

いいねを押す +0
迷茫

ロギング

いいねを押す +0
小葫芦

各スレッドは、出力する必要があるコンテンツを Queue() に置き、具体的には Queue() からデータを読み取って画面に出力するスレッドを開始します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート