The example in this article describes threading Hyper-threading usage in Python. Share to everyone for your reference. The specific analysis is as follows:
Threading Java-based threading model design. Locks (lock) and condition variables (Condition) are the basic behavior of objects in Java (each object has its own lock and condition variable), while in Python it is a separate object. Python thread provides a subset of the behavior of Java thread; There is no priority, thread group, and thread cannot be stopped, paused, recovered, interrupted. Some of the Java thread's static methods implemented in Python are provided in the form of modular methods in threading.
The common methods provided by the threading module are:
Threading.currentthread (): Returns the current thread variable.
Threading.enumerate (): Returns a list containing the running thread. Running refers to threads that start and end after the thread has started, not including before and after the start.
Threading.activecount (): Returns the number of threads running, with the same result as Len (Threading.enumerate ()).
Classes provided by the threading module:
Thread, Lock, Rlock, Condition, [Bounded]semaphore, Event, Timer, Local.
Thread is a threading class, similar to Java, with two ways of using it, passing directly to the method to run or inheriting from thread and overwriting run ():
?
1 2 3 4 5 6 7 8 9 10 11 12-13 |
# Encoding:utf-8 Import Threading # Method 1: The method to be executed is passed as a parameter to the construction method of Thread def func (): print ' func () passed to Thread ' t = Threadin G.thread (Target=func) T.start () # Method 2: Inherit from Thread and override the Run () class Mythread (threading. Thread): def run (self): print ' Mythread extended from Thread ' t = mythread () T.start () |
Construction Method:
Thread (Group=none, Target=none, Name=none, args= (), kwargs={})
Group: Thread Group, currently not implemented, the library reference must be a hint of none;
Target: The method to be executed;
Name: thread name;
Args/kwargs: The arguments to pass in the method.
Instance method:
IsAlive (): Returns whether the thread is running. Running refers to the start, before termination.
Get/setname (name): Gets/sets the thread name.
Is/setdaemon (BOOL): Gets/Sets whether the daemon is a thread. The initial value is inherited from the thread that created the thread. When no non-daemon thread is still running, the program terminates.
Start (): Start the thread.
Join ([timeout]): The thread that blocks the current context environment until the thread calling this method terminates or arrives at the specified timeout (optional parameter).
An example of using join ():
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16-17 |
# Encoding:utf-8 Import Threading Import Time Def context (Tjoin): print ' in Threadcontext. ' Tjoin.start () # will block Tcontext until Threadjoin terminated. Tjoin.join () # Tjoin continues execution after termination. print ' Out Threadcontext. ' Def join (): print ' Threadjoin. ' Time.sleep (1) print ' Out threadjoin. ' Tjoin = Threading. Thread (target=join) Tcontext = Threading. Thread (Target=context, args= (Tjoin,)) Tcontext.start () |
Run Result:
In Threadcontext.
In Threadjoin.
Out Threadjoin.
Out Threadcontext.
I hope this article will help you with your Python programming.