zoukankan      html  css  js  c++  java
  • 多线程

     1 import _thread
     2 import time
     3 
     4 def print_time(threadName,delay):
     5     count = 0
     6     while count < 5:
     7         time.sleep(delay)
     8         count += 1
     9         print('{0}: {1}'.format(threadName,time.ctime(time.time())))
    10 
    11 try:
    12     _thread.start_new_thread(print_time,('Thread-1',2,))
    13     _thread.start_new_thread(print_time,('Thread-2',4,))
    14 except:
    15     print('Error')
    16 while 1:
    17     pass
     1 # 3-线程同步
     2 import threading
     3 import time
     4 class myThread(threading.Thread):
     5     def __init__(self,threadID,name,counter):
     6         threading.Thread.__init__(self)
     7         self.threadID = threadID
     8         self.name = name
     9         self.counter = counter
    10     def run(self):
    11         print('开启线程: ' + self.name)
    12         threadLock.acquire()
    13         print_time(self.name,self.counter,3)
    14         threadLock.release()
    15 
    16 def print_time(threadName,delay,counter):
    17     while counter:
    18         time.sleep(delay)
    19         print('{} :{}'.format(threadName,time.ctime(time.time())))
    20         counter -=1
    21 
    22 threadLock = threading.Lock()
    23 threads  = []
    24 
    25 thread1 = myThread(1,'Thread-1',1)
    26 thread2 = myThread(2,'Thread-2',2)
    27 
    28 thread1.start()
    29 thread2.start()
    30 
    31 threads.append(thread1)
    32 threads.append(thread2)
    33 
    34 for t in threads:
    35     t.join()
    36 print('退出主线程')
     1 # 线程优先级队列
     2 import queue
     3 import threading
     4 import time
     5 
     6 exitFlag = 0
     7 
     8 class myThread (threading.Thread):
     9     def __init__(self,threadID,name,q):
    10         threading.Thread.__init__(self)
    11         self.thredID = threadID
    12         self.name = name
    13         self.q = q
    14     def run(self):
    15         print('开启线程:' + self.name)
    16         process_data(self.name,self.q)
    17         print('退出线程: ' + self.name)
    18 def process_data(threadName,q):
    19     while not exitFlag:
    20         queueLock.acquire()
    21         if not workQueue.empty():
    22             data = q.get()
    23             queueLock.release()
    24             print('{}: {}'.format(threadName,data))
    25         else:
    26             queueLock.release()
    27         time.sleep(1)
    28 
    29 threadList = ['Thread-1','Thread-2','Thread-3']
    30 nameList = ['One','Two','Three','Four','Five']
    31 queueLock = threading.Lock()
    32 workQueue = queue.Queue(10)
    33 threads = []
    34 threadID = 1
    35 
    36 for tName in threadList:
    37     thread = myThread(threadID,tName,workQueue)
    38     thread.start()
    39     threads.append(thread)
    40     threadID += 1
    41 
    42 queueLock.acquire()
    43 for word in nameList:
    44     workQueue.put(word)
    45 queueLock.release()
    46 
    47 while not workQueue.empty():
    48     pass
    49 
    50 exitFlag = 1
    51 
    52 for t in threads:
    53     t.join()
    54 print('退出主鼎城')
     1 # 使用threading模块创建线程
     2 import threading
     3 import time
     4 
     5 exitFlag = 0
     6 class myThread(threading.Thread):
     7     def __init__(self,threadID,name,counter):
     8         threading.Thread.__init__(self)
     9         self.threadID = threadID
    10         self.name = name
    11         self.counter = counter
    12     def run(self):
    13         print('开始线程: '+ self.name)
    14         print_time(self.name,self.counter,5)
    15         print('tichuxiancheng') + self.name
    16 
    17 def print_time(threadName,delay,counter):
    18     while counter:
    19         if exitFlag:
    20              threadName.exit()
    21         time.sleep(delay)
    22         print('{}:{}'.format(threadName,time.ctime(time.time())))
    23 
    24 
    25 thread1 = myThread(1,'Thread-1',1)
    26 thread2 = myThread(2,'Thread-2',2)
    27 
    28 thread1.start()
    29 thread2.start()
    30 thread1.join()
    31 thread2.join()
    32 print('退出主线程')
  • 相关阅读:
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
  • 原文地址:https://www.cnblogs.com/jpr-ok/p/9269781.html
Copyright © 2011-2022 走看看