Get The Most Affordable Hosting in the World!

Starting at just $1.87/month, Vercaa offers unbeatable pricing for world-class web hosting services.

Fast, reliable, and secure hosting to power your website without breaking the bank. Plus, enjoy a free CDN for faster loading times worldwide!

Get Started Now!

Python supports multiple threads in a program. A multi-threaded program can execute multiple sub-tasks independently, which allows the parallel execution of tasks.

Python interpreter maps Python thread requests to either POSIX/pthreads, or Windows threads. Hence, similar to ordinary threads, Python threads are handled by the host operating system.

However, there is no support for thread scheduling in the Python interpreter. Hence, thread priority, scheduling schemes, and thread pre-emption is not possible with the Python interpreter. The scheduling and context switching of Python threads is at the disposal of the host scheduler.

Python does have some support for task scheduling in the form of sched module as the standard library. It can be used in the creation of bots and other monitoring and automation applications. The sched module implements a generic event scheduler for running tasks at specific times. It provides similar tools like task scheduler in windows or Linux.

The scheduler class is defined in the sched built-in module.

scheduler(timefunc=time.monotonic, delayfunc=time.sleep)

The methods defined in scheduler class include −

  • scheduler.enter() − Events can be scheduled to run after a delay, or at a specific time. To schedule them with a delay, enter() method is used.

  • scheduler.cancel() − Remove the event from the queue. If the event is not an event currently in the queue, this method will raise a ValueError.

  • scheduler.run(blocking=True) − Run all scheduled events.

Events can be scheduled to run after a delay, or at a specific time. To schedule them with a delay, use the enter() method, which takes four arguments.

  • A number representing the delay

  • A priority value

  • The function to call

  • A tuple of arguments for the function

Example 1

This example schedules two different events −

 
import sched import time scheduler = sched.scheduler(time.time, time.sleep) def schedule_event(name, start): now = time.time() elapsed = int(now - start) print('elapsed=',elapsed, 'name=', name) start = time.time() print('START:', time.ctime(start)) scheduler.enter(2, 1, schedule_event, ('EVENT_1', start)) scheduler.enter(5, 1, schedule_event, ('EVENT_2', start)) scheduler.run()

It will produce the following output −

START: Mon Jun 5 15:37:29 2023
elapsed= 2 name= EVENT_1
elapsed= 5 name= EVENT_2

Example 2

Let's take another example to understand the concept better −

 
import sched from datetime import datetime import time def addition(a,b): print("Performing Addition : ", datetime.now()) print("Time : ", time.monotonic()) print("Result : ", a+b) s = sched.scheduler() print("Start Time : ", datetime.now()) event1 = s.enter(10, 1, addition, argument = (5,6)) print("Event Created : ", event1) s.run() print("End Time : ", datetime.now())

It will produce the following output −

Start Time : 2023-06-05 15:49:49.508400
Event Created : Event(time=774087.453, priority=1, sequence=0, action=<function addition at 0x000001FFE71A1080>, argument=(5, 6), kwargs={})
Performing Addition : 2023-06-05 15:49:59.512213
Time : 774087.484
Result : 11
End Time : 2023-06-05 15:49:59.559659



The End! should you have any inquiries, we encourage you to reach out to the Vercaa Support Center without hesitation.
Помог ли вам данный ответ? 1 Пользователи нашли это полезным (1 голосов)