了解Python多线程的创建程序

开发 后端
这篇文章是关于Python多线程创建的方法的介绍,以及如何创建胡说创建锁,如果你想模拟一个多线程序关于公交地铁卡的交车费的多线程程序,你可以借鉴我们的文章。

Python多线程在程序设计中自由重要的地位,在服务器deamon程序方面更为重要,但是不论在那种系统,Python多线程调度的开销比其他要开的很多。如果你想在此方面有更好的了解,你可以浏览以下的这篇文章。希望你有所收获。

Python可以方便地支持多线程。可以快速创建线程、互斥锁、信号量等等元素,支持线程读写同步互斥。美中不足的是,Python多线程的运行在Python虚拟机上,创建的多线程可能是虚拟的线程,需要由Python虚拟机来轮询调度,这大大降低了Python多线程的可用性。希望高版本的Python可以解决这个问题,发挥多CPU的***效率。网上有些朋友说要获得真正多CPU的好处,有两种方法:
1.可以创建多个进程而不是线程,进程数和cpu一样多。
2.使用Jython 或 IronPython,可以得到真正的多线程。

闲话少说,下面看看Python如何建立线程

Python线程创建

需要关注threading.Thread.join(th)
或者th.join()

 如果你可以对要处理的数据进

  1. class Thread( group=Nonetarget=Nonename=Noneargs=(),
     
    kwargs={})   
  2.  

行很好的划分,而且线程之间无须通信,那么你可以使用:创建=》运行=》回收的方式编写你的Python多线程程序。但是如果线程之间需要访问共同的对象,则需要引入互斥锁或者信号量对资源进行互斥访问。

下面讲讲如何创建互斥锁创建锁

 ***,模拟一个公交地铁IC卡缴车费的多线程程序,有10个读卡器,每个读卡器收费器每次扣除用户一块钱进入总账中,每读卡器每天一共被刷10000000次。账户原有100块。所以***的总账应该为10000100。先不使用互斥锁来进行锁定(注释掉了锁定代码),看看后果如何即可。

  1. g_mutex = threading.Lock()   
  2. ....   
  3. 使用锁   
  4. for ... :   
  5. #锁定,从下一句代码到释放前互斥访问   
  6. g_mutex.acquire()   
  7. a_account.deposite(1)   
  8. #释放   
  9. g_mutex.release()  

以上就是对Python多线程的相关介绍。

【编辑推荐】

  1. python程序调试与c/c++的相关功能对比我国IPTV研究目全球领先
  2. python程序调试与c/c++的相关功能对比
  3. python程序调试与c/c++的相关功能对比
  4. Python日志需要我们不断的学习
  5. python程序调试与c/c++的相关功能对比
责任编辑:佚名
相关推荐

2010-02-01 17:18:23

Python多线程环境

2023-06-06 08:17:52

多线程编程Thread类

2010-03-15 17:56:23

Java多线程

2011-06-16 10:38:13

Qt多线程编程

2012-06-20 14:07:28

多线程架构单线程

2009-06-29 17:54:10

Java多线程Thread类创建线程

2021-02-25 15:58:46

C++线程编程开发技术

2009-06-29 18:00:05

Java多线程Runnable接口创建线程

2010-03-18 16:02:09

python 多线程

2024-04-10 09:47:59

Java调度虚拟线程

2010-03-10 18:32:45

Python多线程

2009-02-10 09:53:41

多线程程序设计Java

2010-09-17 09:08:49

Java多线程

2010-02-01 17:25:09

Python多线程

2023-10-06 23:06:01

多线程Python

2009-08-12 13:22:44

Singleton模式

2009-06-08 20:16:15

Eclipse客户端多线程

2010-03-10 19:25:04

python多线程

2011-04-18 09:22:38

多线程

2011-06-22 14:30:44

QT 多线程 线程
点赞
收藏

51CTO技术栈公众号