python下线程以及锁

简介: 1、python多线程 1 #encoding=utf-8 2 """ 3 python多线程,并非真正意义上的多线程 4 全局锁:在指定时间里,有且只有一个线程在运行 5 """ 8 import threading 9 import time 10 11 def test(p): 12 time.

1、python多线程

 1 #encoding=utf-8
 2 """
 3 python多线程,并非真正意义上的多线程
 4 全局锁:在指定时间里,有且只有一个线程在运行
 5  """
 8 import threading
 9 import time
10 
11 def test(p):
12     time.sleep(0.1)
13     print p
14 
15 # a = threading.Thread(target=test)
16 # b = threading.Thread(target=test)
17 # a.start()
18 # b.start()
19 # 
20 # a.join()
21 # b.join()
22 
23 lst =[]
24 for i in xrange(0, 15):
25     th = threading.Thread(target=test, args=[i])
26     lst.append(th)
27 
28 for i in lst:
29     i.start()
30 
31 
32 for i in lst:
33     i.join()
34 print "primary thread end!!!"

2、python下的锁

 1 #encoding=utf-8
 2 
 3 """
 4 1、python全局锁:GLT
 5   python多线程在任意时刻下只有一个线程在运行,它是线程安全的
 6 """
 7 
 8 import threading
 9 
10 num = 0
11 def t():
12     global num
13     num +=1
14     print num
15     
16 for i in xrange(0, 10):
17     d = threading.Thread(target=t)
18     d.start()
19 
20 
21 import time
22 b_time = time.time()
23 _a = threading.Thread(target=t)
24 _b = threading.Thread(target=t)
25 _a.start()
26 _b.start()
27 
28 _a.join()
29 _b.join()
30 
31 print time.time()-b_time
32 
33 """
34 加锁:acquire()
35 解锁:release()
36 RLock()可重入锁
39 """
40 import threading
41 mlock = threading.Lock()
42 #mlock = threading.RLock()
43 
44 num_01 = 0
45 def a():
46     global num_01
47     mlock.acquire()
48     num_01 += 1
49     mlock.release()
50     print num_01
51     
52 for i in xrange(0, 10):
53     d = threading.Thread(target=a)
54     d.start()
55     

 

相关文章
|
7天前
|
安全 数据处理 开发者
Python中的多线程编程:从入门到精通
本文将深入探讨Python中的多线程编程,包括其基本原理、应用场景、实现方法以及常见问题和解决方案。通过本文的学习,读者将对Python多线程编程有一个全面的认识,能够在实际项目中灵活运用。
|
1天前
|
Java Unix 调度
python多线程!
本文介绍了线程的基本概念、多线程技术、线程的创建与管理、线程间的通信与同步机制,以及线程池和队列模块的使用。文章详细讲解了如何使用 `_thread` 和 `threading` 模块创建和管理线程,介绍了线程锁 `Lock` 的作用和使用方法,解决了多线程环境下的数据共享问题。此外,还介绍了 `Timer` 定时器和 `ThreadPoolExecutor` 线程池的使用,最后通过一个具体的案例展示了如何使用多线程爬取电影票房数据。文章还对比了进程和线程的优缺点,并讨论了计算密集型和IO密集型任务的适用场景。
13 4
|
8天前
|
Python
Python中的多线程与多进程
本文将探讨Python中多线程和多进程的基本概念、使用场景以及实现方式。通过对比分析,我们将了解何时使用多线程或多进程更为合适,并提供一些实用的代码示例来帮助读者更好地理解这两种并发编程技术。
|
15天前
|
Java Python
python知识点100篇系列(16)-python中如何获取线程的返回值
【10月更文挑战第3天】本文介绍了两种在Python中实现多线程并获取返回值的方法。第一种是通过自定义线程类继承`Thread`类,重写`run`和`join`方法来实现;第二种则是利用`concurrent.futures`库,通过`ThreadPoolExecutor`管理线程池,简化了线程管理和结果获取的过程,推荐使用。示例代码展示了这两种方法的具体实现方式。
python知识点100篇系列(16)-python中如何获取线程的返回值
|
22天前
|
数据挖掘 程序员 调度
探索Python的并发编程:线程与进程的实战应用
【10月更文挑战第4天】 本文深入探讨了Python中实现并发编程的两种主要方式——线程和进程,通过对比分析它们的特点、适用场景以及在实际编程中的应用,为读者提供清晰的指导。同时,文章还介绍了一些高级并发模型如协程,并给出了性能优化的建议。
22 3
|
25天前
|
并行计算 安全 Java
Python 多线程并行执行详解
Python 多线程并行执行详解
46 3
|
27天前
|
运维 API 计算机视觉
深度解密协程锁、信号量以及线程锁的实现原理
深度解密协程锁、信号量以及线程锁的实现原理
30 1
|
16天前
|
Java 应用服务中间件 测试技术
Java21虚拟线程:我的锁去哪儿了?
【10月更文挑战第8天】
23 0
|
17天前
|
网络协议 安全 Java
难懂,误点!将多线程技术应用于Python的异步事件循环
难懂,误点!将多线程技术应用于Python的异步事件循环
46 0
|
22天前
|
安全 调度 数据安全/隐私保护
iOS线程锁
iOS线程锁
24 0