python 中线程

import threading
import time

class Test(threading.Thread):
    # 继承threading.Thread
    def __init___(self):
        super(Test, self).__init__()

    def run(self):
        # 设置线程方法
        threadname = threading.currentThread().getName()
        for x in xrange(10):
            print threadname, x, 
            print 
            time.sleep(1)
            

threads = []
for i in xrange(1, 5):
    threads.append(Test())

for t in threads:
    #启动线程
    t.start()

# 主线程中等待所有子线程退出
for i in threads:
    t.join() # 线程完成

# 如果不加上面t.join,将会一直等待下去,无法打印出end

print  'end'

 

如果你的主线程中有别的事情要做,就无需加join,加join只是告诉主线程,所有子线程已经完成
        

转载于:https://www.cnblogs.com/itfenqing/archive/2012/11/25/4429467.html

### Python 中线与进的区别 在Python中,线和进都是用于实现并发编的重要机制,但两者之间存在显著差异。 #### 线的特点 线是操作系统能够进行运算调度的最小单位。多个线可以在同一个进中共享内存空间和其他资源,这使得线间通信变得简单快捷[^1]。然而,由于全局解释器锁(GIL)的存在,在CPython实现下,即使启动了多线,某些情况下也无法真正并行执行CPU密集型任务[^5]。 #### 进的特点 相比之下,每个进拥有独立的地址空间,这意味着不同进之间的数据隔离较好,安全性更高。但是这也带来了更高的开销——创建新进的成本远大于创建新线,并且跨进的数据交换相对复杂一些[^3]。 ### 使用场景分析 对于I/O密集型的应用来说,比如网络爬虫或文件处理工具,使用多线往往能获得较好的效果;而对于计算密集型的任务,则更适合采用多进方案以充分利用多核处理器的能力[^2]。 ### 实现示例 以下是简单的多线和多进的例子: #### 多线实例 ```python import threading def print_numbers(): for i in range(5): print(f'Number {i}') thread = threading.Thread(target=print_numbers) thread.start() thread.join() # 主线等待子线完成后再继续往下走 ``` #### 多进实例 ```python from multiprocessing import Process def print_letters(): for letter in 'ABCDE': print(letter) process = Process(target=print_letters) process.start() process.join() # 父进等待子进结束之后再继续运行下面的代码 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值