简体   繁体   中英

How to make a function executes after x seconds of its call using python

I don't want function to be called every x secs I want a function to be executed after some seconds of its call and rest of program executes in order.

Like in my code I want to call fun_2() in which fun_1() is called which will make separate thread which will come live after x secs and in mean while fun_2() will print the statement then fun_1() will print its statement.

My Code:

import time

def fun_1(tim): # make this to be executed in separated thread 
  time.sleep(tim)
  print("Be kind : ) ")

def fun_2():
  fun_1(2) #Its call
  print(" Be Honest ")
  print("After 2 secs")
fun_2()

output should be like this

输出

I'd suggest doing some research on Thread, this could help. For your example, this might be what you're looking for:

from time import sleep
from threading import Thread


def fun_1(sleep_time, message):
    sleep(sleep_time)
    print(message)


def fun_2():
    # create a thread
    thread = Thread(target=fun_1, args=(2, 'Be kind : ) '))
    # run the thread
    thread.start()
    print(" Be Honest ")
    print("After 2 secs")
    thread.join()

fun_2()

You don't need to write any code at all. That's exactly what the standard Python library's threading.Timer does. All you have to do is call it.

import threading

def fun_1(): # this will be executed in a separate thread 
  print("Be kind : ) ")

def fun_2():
  threading.Timer(2.0, fun_1).start()
  print(" Be Honest ")
  print("After 2 secs")

fun_2()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM