Python: high precision time.sleep

Posted on

Question :

Python: high precision time.sleep

can you tell me how can I get a high precision sleep-function in Python2.6 on Win32 and on Linux?

Asked By: George

||

Answer #1:

You can use floating-point numbers in sleep():

The argument may be a floating point number to indicate a more precise sleep time.

So

time.sleep(0.5)

will sleep for half a second.

In practice, however, it’s unlikely that you will get much more than millisecond precision with sleep because operating systems usually only support millisecond sleeps and because very short amounts of time quickly get unreliable.

Answered By: Joey

Answer #2:

Here is a similar question:

how-accurate-is-pythons-time-sleep

On linux if you need high accuracy you might want to look into using ctypes to call nanosleep() or clock_nanosleep(). I’m not sure of all the implications of trying that though.

Answered By: Karl Voigtland

Answer #3:

def start(self):
    sec_arg = 10.0
    cptr = 0
    time_start = time.time()
    time_init = time.time()
    while True:
        cptr += 1
        time_start = time.time()
        time.sleep(((time_init + (sec_arg * cptr)) - time_start ))

        # AND YOUR CODE .......
        t00 = threading.Thread(name='thread_request', target=self.send_request, args=([]))
        t00.start()

It’s a very good precision on linux

Answered By: forrest

Leave a Reply

Your email address will not be published. Required fields are marked *