线程模块

线程模块:

 

使用Threading模块创建线程

 

了解线程:

  1. 使用线程可以把占据时间的程序中的任务放到后台去处理。
  2. 用户界面可以更加的吸引人,这样吧入用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的速度。
  3. 程序的运行速度可能加快。
  4. 在一些等待的任务实现上如用户输入,文件读写好人网络收发数据等,线程就比较好用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。
  5. 线程在执行过程中与进程还是有区别的。每一个独立的线程有一个程序运行的入口,顺序执行序列和程序的出口。但是线程不能独立执行,必须依存在的应用程序中,由应用程序提供多个线程执行控制。
  6. 每个线程都有自己的一组CPU寄存器,称之为线程的上下文,该上下文反映了线程上次运行该线程的CPU寄存器的状态。
  7. 指令指针和堆栈指针寄存器是线程上下文中两个最重要的寄存器,线程总是在进程得到上下文中运行的,这些地址都用于标志拥有线程的进程地址空间中的内存。
  8. 在其他线程正在运行时,线程可以暂时搁置也称为睡眠---这就是线程的退让。
  9. Python中使用线程有两种方式:函数或者用类来包装线程对象
  10. 函数式:调用thread模块中的start new_thread()函数用来产生新线程
    •   thread.start new_thread(function,args[,kwargs])参数说明
    • function -线程函数。
    • args-传递给线程函数的参数,他必须是个tuple类型。
    • kwargs-可选参数。
    • 实例:
    • #!/usr/bin/python
      # -*- coding: UTF-8 -*- 
      import thread
      import time# 为线程定义一个函数
      def print_time( threadName, delay):
      count = 0
      while count < 5:
      time.sleep(delay)
      count += 1
      print "%s: %s" % ( threadName, time.ctime(time.time()) )# 创建两个线程
      try:
      thread.start_new_thread( print_time, ("Thread-1", 2, ) )
      thread.start_new_thread( print_time, ("Thread-2", 4, ) )
      except:
      print "Error: unable to start thread"
      while 1:
      pass
posted @ 2017-06-16 15:06  达不溜先生  阅读(373)  评论(0编辑  收藏  举报