- 浏览: 2035494 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (651)
- ACE (35)
- BAT (9)
- C/C++ (116)
- fast-cgi (14)
- COM (27)
- python (59)
- CGI (4)
- C# (2)
- VC (84)
- DataBase (29)
- Linux (96)
- P2P (6)
- PHP (15)
- Web (6)
- Memcached (7)
- IME输入法 (11)
- 设计模式 (2)
- 搜索引擎 (1)
- 个人情感 (4)
- 笔试/面试 (3)
- 一亩三分地 (33)
- 历史 (2)
- 地理 (1)
- 人物 (3)
- 经济 (0)
- 不仅仅是笑哦 (43)
- 小故事大道理 (2)
- http://www.bjdsmyysjk120.com/ (0)
- http://www.bjdsmyy120.com/ (0)
- 它山之石可以攻玉 (15)
- 大学生你关注些什么 (28)
- 数据恢复 (1)
最新评论
-
luokaichuang:
这个规范里还是没有让我明白当浏览器上传文件时,STDIN的消息 ...
FastCGI规范 -
effort_fan:
好文章!学习了,谢谢分享!
com技术简介 -
vcell:
有错误os.walk(strPath)返回的已经是全部的文件和 ...
通过python获取目录的大小 -
feifeigd:
feifeigd 写道注意:文章中的CPP示例第二行 #inc ...
ATL入门:利用ATL编写简单的COM组件 -
feifeigd:
注意:文章中的CPP示例第二行 #include " ...
ATL入门:利用ATL编写简单的COM组件
2.使用Jython 或 IronPython,可以得到真正的多线程。
...
th = threading.Thread(target=worker,args=(i,acc) ) ;
或者th.join()
g_mutex = threading.Lock()
....
使用锁
for ... :
#锁定,从下一句代码到释放前互斥访问
g_mutex.acquire()
a_account.deposite(1)
#释放
g_mutex.release()
import threading
def worker(a_tid,a_account):
global g_mutex
print "Str " , a_tid, datetime.datetime.now()
for i in range(1000000):
#g_mutex.acquire()
a_account.deposite(1)
#g_mutex.release()
print "End " , a_tid , datetime.datetime.now()
class Account:
def __init__ (self, a_base ):
self.m_amount=a_base
def deposite(self,a_amount):
self.m_amount+=a_amount
def withdraw(self,a_amount):
self.m_amount-=a_amount
if __name__ == "__main__":
global g_mutex
count = 0
dstart = datetime.datetime.now()
print "Main Thread Start At: " , dstart
#init thread_pool
thread_pool = []
#init mutex
g_mutex = threading.Lock()
# init thread items
acc = Account(100)
for i in range(10):
th = threading.Thread(target=worker,args=(i,acc) ) ;
thread_pool.append(th)
# start threads one by one
for i in range(10):
thread_pool[i].start()
#collect all threads
for i in range(10):
threading.Thread.join(thread_pool[i])
dend = datetime.datetime.now()
print "count=",acc.m_amount
print "Main Thread End at: " ,dend , " time span " , dend-dstart;
Str 0 2009-01-13 00:17:55.312000
Str 1 2009-01-13 00:17:55.453000
Str 2 2009-01-13 00:17:55.484000
Str 3 2009-01-13 00:17:55.531000
Str 4 2009-01-13 00:17:55.562000
Str 5 2009-01-13 00:17:55.609000
Str 6 2009-01-13 00:17:55.640000
Str 7 2009-01-13 00:17:55.687000
Str 8 2009-01-13 00:17:55.718000
Str 9 2009-01-13 00:17:55.781000
End 0 2009-01-13 00:18:06.250000
End 1 2009-01-13 00:18:07.500000
End 4 2009-01-13 00:18:07.531000
End 2 2009-01-13 00:18:07.562000
End 3 2009-01-13 00:18:07.593000
End 9 2009-01-13 00:18:07.609000
End 7 2009-01-13 00:18:07.640000
End 8 2009-01-13 00:18:07.671000
End 5 2009-01-13 00:18:07.687000
End 6 2009-01-13 00:18:07.718000
count= 3434612
Main Thread End at: 2009-01-13 00:18:07.718000 time span 0:00:12.422000
Str 0 2009-01-13 00:26:12.156000
Str 1 2009-01-13 00:26:12.390000
Str 2 2009-01-13 00:26:12.437000
Str 3 2009-01-13 00:26:12.468000
Str 4 2009-01-13 00:26:12.515000
Str 5 2009-01-13 00:26:12.562000
Str 6 2009-01-13 00:26:12.593000
Str 7 2009-01-13 00:26:12.640000
Str 8 2009-01-13 00:26:12.671000
Str 9 2009-01-13 00:26:12.718000
End 0 2009-01-13 00:27:01.781000
End 1 2009-01-13 00:27:05.890000
End 5 2009-01-13 00:27:06.046000
End 7 2009-01-13 00:27:06.078000
End 4 2009-01-13 00:27:06.109000
End 2 2009-01-13 00:27:06.140000
End 6 2009-01-13 00:27:06.156000
End 8 2009-01-13 00:27:06.187000
End 3 2009-01-13 00:27:06.203000
End 9 2009-01-13 00:27:06.234000
count= 10000100
Main Thread End at: 2009-01-13 00:27:06.234000 time span 0:00:54.078000
发表评论
-
提供有偿反编译 python2.5,2.6,2.7 code
2014-04-03 16:32 1329提供有偿 反编译 python2.5, python2.6 ... -
Python:封装允许执行命令有超时的类
2012-08-24 17:35 4535封装允许执行命令有超时的类 #!/usr/bin/env ... -
python 去掉重复行
2011-06-16 12:15 6907#!/usr/bin/env python impor ... -
通过python获取目录的大小
2011-06-07 11:04 8947通过python获取目录的大小 需要用到的mod ... -
python 单元测试示例2
2011-05-17 11:51 1571#!/usr/bin/env python ... -
python 单元测试示例1
2011-05-17 11:51 1754#!/usr/bin/env python im ... -
python 获取文件md5
2011-05-13 14:01 8039#!/usr/bin/env python im ... -
python模拟windows获取设置ini
2011-05-05 12:20 1149#!/usr/bin/env python from ... -
python 解析 json
2011-04-25 15:42 3699#!/usr/bin/env python impor ... -
python时间处理
2011-04-23 19:25 724import time; import os; impor ... -
python简单的socket 服务器和客户端
2011-03-03 17:42 11546服务器端代码 if "__main__&qu ... -
python __file__ 与argv[0]
2011-02-28 11:25 36888python __file__ 与argv[0] 在py ... -
python os.path模块 简明文档
2011-02-28 11:10 2102os.path.abspath(path)取path的绝对目录 ... -
Python 用HTMLParser解析HTML文件
2011-02-16 20:44 35004Python 用HTMLParser解析HTML文件 ... -
python使用simplejson解析示例
2011-02-16 15:28 8220#!/usr/bin/env python imp ... -
python simplejson模块的使用方法
2011-02-16 14:38 10329python安装:easy_install simplejso ... -
用PDB库调试Python程序
2011-01-06 12:54 1938如果使用过微软技术的朋友应该体会过微软的Visual Stud ... -
python更新svn
2010-12-29 11:05 6331def UpdateSvn(strUser, strPwd, ... -
python 函数参数的传递(参数带星号的说明)
2010-12-23 17:59 1456python中函数参数的传递是通过赋值来传递的。函数参数的 ... -
python 之 分割参数getopt
2010-12-17 11:02 51424python 之 分割参数getopt ...
相关推荐
Python多线程编程是利用Python实现程序并行性的一种方式,尤其适合于处理异步、并发事务和资源密集型任务。在多线程环境中,多个线程可以同时执行,提高程序效率,尤其对于那些需要从多个输入源处理数据或者进行大量...
Python多线程编程文档说明 多进程编程 一、 multiprocessing 模块 1. multiprocessing 模块提供了多进程编程的能力 它的API非常类似于 threading 模块,但是也提供了一些threading 模块不具有的能力 相比于线程,它...
Python多线程编程在实现网络串口透传中扮演着重要的角色,特别是在处理TCP客户端网口数据时。网络串口透传技术允许通过网络连接模拟串行通信,使得远程设备可以像连接本地串口一样进行通信。这在物联网(IoT)、远程...
Python多线程编程是Python系统编程中的重要组成部分,它允许程序同时执行多个任务,从而提高程序的效率和响应速度。在Python中,我们通常使用内置的`thread`库、`threading`库以及`Queue`库来实现多线程。 首先,`...
Python多线程编程是一种允许程序同时执行多个线程的技术,以实现程序的并行处理。这通常适用于那些可以分解为多个独立任务的程序,其中各个任务之间能够并发执行,从而提高程序的效率和响应速度。 在操作系统中,...
在Python编程中,多线程同步对于文件读写控制至关重要,因为如果不加以控制,多个线程同时访问同一文件可能会导致数据不一致或者错误。...在多线程编程中,合理使用同步机制对于保证程序的稳定性和正确性至关重要。
通过分析和学习这个文件,你可以进一步加深对Python多线程编程的理解,包括如何有效地使用线程池(`ThreadPoolExecutor`),以及如何处理线程异常和线程间的协作问题。 总之,Python的多线程编程虽然受到GIL的限制...
Python多线程编程是Python标准库中的一个强大功能,它允许程序员在程序中运行多个线程,实现多任务处理。这一功能主要通过Python的`threading`模块实现。本文将详细介绍如何在Python中使用多线程,包括创建线程、`...
尽管文档标题与内容存在不一致(标题提及了“Python多线程编程的实践指南”而内容却涉及到了Matlab),这里我们将聚焦于Python多线程编程的相关知识点展开详细讨论。 ### Python多线程编程的实践指南 #### 一、多...
在Python编程中,多线程是实现并发处理的一种方式,特别是在处理大量数据或执行耗时操作时。然而,多线程环境下常常会出现数据共享的问题,这可能导致数据的不一致性和错误。为了解决这个问题,Python提供了多种同步...
1、多线程的理解 多进程和多线程都可以执行多个任务,线程是进程的一部分。...2、Python多线程创建 在Python中,同样可以实现多线程,有两个标准模块thread和threading,不过我们主要使用 更高级的threading模块。
在Python编程中,多线程是一种并发执行任务的机制,尤其在处理I/O密集型任务如网络请求时,能够显著提高程序效率。本教程将详细讲解如何使用Python的多线程来实现对多个网址的快速访问,并记录访问结果。 首先,...
Python的多线程编程是构建高效并发应用的关键技术之一,特别是在处理I/O密集型任务时。`threading`库是Python标准库中的一个模块,它提供了对多线程的支持,让我们能够并行执行多个任务。在本文中,我们将深入探讨`...
本离线安装包“python多线程池离线安装包.zip”包含了实现Python多线程所需的关键组件。主要包含以下三个子文件: 1. `pip-19.2.3.tar.gz`:这是Python的包管理器pip的一个版本,用于安装和管理Python库。在离线...
Python多线程编程是软件开发中一种重要的技术,它允许程序员同时执行多个任务,提高程序的效率和响应速度。在Python中,多线程是通过`thread`和`threading`模块来实现的。 1. **线程和进程的区别** - **进程**:是...
总结起来,`python多线程定时器`的实现涉及到Python的`threading`和`time`模块,通过`Thread`和`Timer`类来创建和管理线程,使用定时器控制线程的启动时间。主程序`main.py`使用这些工具来安排多个任务按设定的间隔...
### Python多线程编程知识点详解 #### 一、线程状态与类型 在开始深入探讨Python多线程编程之前,我们需要先理解线程的基本概念及其生命周期。线程在其生命周期内会经历多种状态,主要包括以下几种: 1. **New ...
在多线程编程中,我们需要注意全局解释器锁(GIL),它是Python解释器为了保证线程安全而引入的一个机制,但同时也限制了多线程在CPU密集型任务中的性能,因为GIL使得Python在同一时刻只能有一个线程在执行。...
在Python中进行多线程编程是计算机编程领域一个非常重要的课题。多线程编程在提高程序执行效率、...以上内容仅为对Python多线程编程知识点的概述,要真正掌握和应用这些知识,还需要通过实际的编程实践和深入的学习。
本压缩包“PYthon-multithreading-Test.rar”包含了有关Python多线程测试的源码,旨在帮助用户深入理解和实践Python的线程操作。 Python中的多线程是通过`threading`模块实现的,这个模块提供了基本的线程和同步...