我是新來的Python,所以請原諒我的無知。我試圖讓一個進程與我的主文件同時運行。我使用的用例是我想在我的flask/python應用程序接受CRUD請求的同時更改遊戲點(爲所有用戶添加/調整點)。我可能可能只是安排這個午夜運行或某事,但在未來,我可能要根據用戶輸入做出多個更改點。基本上,我真的想要使用某種線程功能。線程塊主要在Python
不幸的是,我的線程阻塞了main的操作。我不知道爲什麼,因爲我認爲線程的整體觀點是它同時運行。
下面是我打電話給我的功能從主:
i = Inflate('pants')
i.timermethod()
這裏是因爲我已經定義它們的類和方法:
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)
輸出是「你好褲」是我的主要功能執行前打印了5次,而我期望/希望「打印褲子」可能只打印一次,當它同時運行時看到主打的其他輸出,然後「繼續打印」以繼續執行。
請讓我知道,如果你有任何想法,我卡住了。
在每次線程啓動後,您都會睡2次,所以每次都會在您開始下一次的時候完成,取消睡眠並且您可能會看到與您的期望更一致的結果,但是您的線程再次做得很少,將在你開始另一個之前完成,所以你仍然可能會看到5'hello' – user3012759
好吧,但是那麼我如何設置一個等待條件每n秒在不阻止main的線程?我需要等待一段時間,然後以某種方式執行另一個線程。 –
爲什麼你需要等待? – user3012759