3-22 thread
关于进程和线程的一些问题:
进程在电脑上是很好理解的,单纯的打开电脑的任务管理器就可以看到进程,而其中相关的线程问题确实有一定的区别:
#概念理解,其中有几个比较重要的概念在这里记一下。
#1.对于操作系统而言,一个任务就是一个进程,开启多个任务就是多个进程。
#多线程运行的有点:
1 使用线程可以把占据多长时间的程序中的任务放到后台去处理
2 用户界面可以更加的吸引人,比如用户单击一个按钮,用于触发某些事件的处理,可以弹出一个进度条显示处理的进度。
3 程序运行速度会加快,但这个不是必然的。
#一个进程至少要包含一个线程
#单线程如何执行多任务?
1 启动多个进程,每个进程虽然只有一个线程,但多个进程就可以只执行多个任务。
2 启动一个进程,在一个进程里添加多个线程来处理任务,多个线程来执行多个任务。
3 启动多个进程,每个进程里再启动多个线程,按道理来说这样应该是执行任务最多的一种方法,但是这种模型过于复杂,实际上很少采用。
多线程是多个相互关联的线程的组合,多线程是多个相互独立的进程的组合,线程是最小的执行单元,进==进程至少由一个线程组成。
#import threading
the first function : threading.active_()
ex;import threading
print(threading.active_())#在这里显示目前系统中有多少正在运行的线程。
#the second part
#something about GIL
这一部分的差不多可以略过,因为在当前的情况下用不到相关的全局解释锁。
#python虚拟机的访问有全局解释器控制,这种锁能保证同一时刻只有一个线程运行。
#退出线程的问题
1 calling function ,调用函数 thread.exit()
2 传入一个函数错误sys.exit()或是抛出一个systemexit
#python 中提供的多线程模块又_thread,threading,和Queun等。
#后续的一些个人理解会添加上来,这些只是对于thread的初识。