私はPythonには新しく、私の無知を許してください。私はメインファイルと同時に実行するプロセスを取得しようとしています。私が持っているユースケースは、私のフラスコ/ pythonアプリケーションがCRUD要求を受け入れると同時に、ゲームのポイントを変更したい(すべてのユーザーのポイントを追加/調整する)ことです。私おそらく真夜中の実行のためにこれをスケジュールするかもしれませんが、将来的に私はユーザーの入力に応じてポイントに複数の変更を加えることがあります。基本的には、本当に何らかのスレッド機能を使いたいと思っています。Pythonのスレッドブロックのメイン
残念ながら、私のスレッドはmainの操作をブロックします。なぜ私はスレッドの全体のポイントは、同時に実行されたと思っていたのか分かりません。ここで
は私がメインの私の関数を呼び出す方法です:
from flask_restful import abort, reqparse, Resource
from marshmallow import Schema, fields, ValidationError, pre_load
from flask import Flask, Blueprint, request, jsonify
from flask_cors import CORS, cross_origin
import psycopg2
import os
from os.path import join, dirname
import threading
from time import sleep
class Inflate:
def __init__(self, s):
self.s = s
def printtest(self):
print('insided the printtest for inflation')
def hello(self, h):
print h + self.s
def timermethod(self):
h="hello there "
for i in range(5):
t = threading.Thread(target=self.hello, args=(h,))
t.start()
sleep(2)
出力が「こんにちはパンツ」であるということです:私はそれらを定義したとしてここ
i = Inflate('pants')
i.timermethod()
は、クラスやメソッドです私の主な機能が実行される前に5回印刷されていましたが、「hello there pants」が一度印刷されることを期待したいのですが、同時に実行されるmainからの他の出力を見て、その後「hello there pants」を実行します。
ご意見がありましたら教えてください。私は立ち往生しています。
各スレッドの開始後に2分間スリープするので、次回起動するまでに各スレッドが完了し、スリープ状態が解除され、結果に期待通りの結果が表示されることがありますが、あなたはまだ別のものを開始する前に終了しますが、あなたはおそらく5 'こんにちは' – user3012759
が表示されますが、それからメインフレームをブロックするスレッドでn秒ごとに待機条件を設定しますか?何らかの形で別のスレッドを実行する前に、ある期間待たなければなりません。 –
なぜあなたは待つ必要がありますか? – user3012759