Python(线程的理解与实现)

1. 线程的理解

1.1. 重要的概念:
	程序: /bin/firefox是一个二进制程序, (eg:python, Java程序), 是一个真实存在的, 可以看到的实体;
	进程: 执行程序的过程中产生的一系列内容,(计算机给进程分配了内存, cpu等.....)
	线程: 执行进程的最小单元,一个进程里必然有一个主线程
	操作线程的模块:thread、threading
1.2 专业的总结:
	进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
	线程,有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元。是被系统独立调度和分派的基本单位。

2. 创建线程

2.1 导入第三方模块:
	import threading
2.2 建立一个程序并运行:
	def job():
    	print("这是一个需要执行的任务......")
	if __name__ == '__main__':
    	job()
2.3 查看当前线程个数:
	threading.active_count()
2.4 查看当前线程信息:
	threading.current_thread()

3. 线程的生命周期

线程的生命周期图

4. 实现多线程的方法一

4.1 新建线程:
	_thread.start_new_thread(job, ())			//job为要执行的进程;后面可以对进程传入参数
	_thread.start_new_thread(job, ())

5. 实现多线程的方法二

5.1 新建线程:
	t1 = threading.Thread(target=job )			//创建多线程时, 需要指i定该线程执行的任务
	t2 = threading.Thread(target=job)
5.2 启动进程:
	t1.start()			//主线程执行结束, 但是子线程还在运行
	t2.start()
5.3 等待所有的子线程执行结束之后, 再执行主线程:
    t1.join()
	t2.join()

6. 实现多线程的方法三

6.1 建立MyThread类:
	class MyThread(threading.Thread):			//继承threading.Thread类
    	def __init__(self, jobName):			//重写__init__方法
        	super(MyThread, self).__init__()
        	self.jobName = jobName
6.2  重写run方法, 实现多线程:
	因为start方法执行时, 调用的是run方法;
	run方法里面编写的内容就是要执行的任务;
    def run(self):
        print("这是一个需要执行的任务%s......" %(self.jobName))
        print("当前线程的个数:", threading.active_count() )
        time.sleep(1)
        print("当前线程的信息:", threading.current_thread())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值