creating thread create subclass of the thread class and redefine the run(method to perform the set of actions that the thread is intended to do we will look at both approaches as thread is an objectit can be treated just like any other objectit can be sent messagesit can have instance variables and it can provide methods thusthe multi-threaded aspects of python all conform to the object-oriented model this greatly simplifies the creation of multi-threaded systems as well as the maintainability and clarity of the resulting software once new instance of thread is createdit must be started before it is startedit cannot runalthough it exists instantiating the thread class the thread class can be found in the threading module and therefore must be imported prior to use the class thread defines single constructor that takes up to six optional argumentsclass threading thread(group=nonetarget=nonename=noneargs=()kwargs={}daemon=nonethe thread constructor should always be called using keyword argumentsthe meaning of these arguments isgroup should be nonereserved for future extension when threadgroup class is implemented target is the callable object to be invoked by the run(method defaults to nonemeaning nothing is called name is the thread name by defaulta unique name is constructed of the form "thread-nwhere is an integer args is the argument tuple for the target invocation defaults to (if single argument is provided the tuple is not required if multiple arguments are provided then each argument is an element within the tuple kwargs is dictionary of keyword arguments for the target invocation defaults to {daemon indicates whether this thread runs as daemon thread or not if not nonedaemon explicitly sets whether the thread is daemonic if none (the default)the daemonic property is inherited from the current thread