码迷,mamicode.com
首页 > 编程语言 > 详细

python线程

时间:2016-03-16 01:37:33      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:python   rlock   

Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。

更多方法:

  • start            线程准备就绪,等待CPU调度

  • setName      为线程设置名称

  • getName      获取线程名称

  • setDaemon   设置为后台线程或前台线程(默认)
                        如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,均停止
                        如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完后,等待前台线程也执行完成后,程序停止

  • join              逐个执行每个线程,执行完毕后继续往下执行,该方法使得多线程变得无意义

  • run              线程被cpu调度后执行Thread类对象的run方法

    例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import threading
import time
  
def show(arg):
    time.sleep(1)
    print ‘thread‘+str(arg)
  
for in range(10):
    = threading.Thread(target=show, args=(i,))
    t.start()
  
print ‘main thread stop‘

线程锁

如果同一时间有多个线程操作同一数据可能会出现混乱现象,所以需要加线程锁保证同一时间只有一个线程操作这一数据,保证数据一致性

加锁:lock = threading.RLock()    解锁:lock.release()

      lock.acquire()

#!/usr/bin/env python
#coding:utf-8
   
import threading
import time
   
gl_num = 0
   
lock = threading.RLock()
   
def Func():
    lock.acquire()
    global gl_num
    gl_num +=1
    time.sleep(1)
    print gl_num
    lock.release()
       
for in range(10):
    = threading.Thread(target=Func)
    t.start()















本文出自 “纷繁中享受技术的简单喜悦” 博客,请务必保留此出处http://51enjoy.blog.51cto.com/8393791/1751424

python线程

标签:python   rlock   

原文地址:http://51enjoy.blog.51cto.com/8393791/1751424

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!