对Python中线程的理解(线程与进程的对比)

使用threading模块中的Thread创建多线程

线程创建方法与进程相同,可以查看前两篇文章

  • 线程使用多线程并发的操作,花费时间要短很多
  • 创建好的线程,需要调用start()方法来启动

主线程会等待所有的子线程结束后才结束

可以使用 length = len(threading.enumerate())查看当前线程数量
1.每个线程一定会有一个名字,没有指定线程对象的name时,python会自动为线程指定一个名字。
2.当线程的run()方法结束时该线程完成。
3.无法控制线程调度程序,但可以通过别的方式来影响线程调度的方式。(如sleep())
4.线程的几种状态
线程

threading注意点

1、多线程程序的执行顺序是不确定的,只能保证每个线程都运行完整个run函数,但是线程的启动顺序、run函数中每次循环的执行顺序都不能确定。

2、在一个进程内的所有线程共享全局变量,能够在不适用其他方式的前提下完成多线程之间的数据共享(这点要比多进程要好)
缺点就是,线程是对全局变量随意遂改可能造成多线程之间对全局变量的混乱(即线程非安全)

进程VS线程

1、进程是系统进行资源分配和调度的一个独立单位
2、线程是CPU调度和分派的基本单位
3、一个程序至少有一个进程,一个进程至少有一个线程
4、计算密集型的任务一般选择多进程,IO密集型的任务一般选择多线程

猜你喜欢

转载自blog.csdn.net/op0912036/article/details/81702136