一.什么是线程

#指的是一条流水线的工作过程,关键的一句话:一个进程内最少自带一个线程,其实进程根本不能执行,进程不是执行单位,是资源的单位,分配资源的单位
#线程才是执行单位
#进程:做手机屏幕的工作过程,刚才讲的
#我们的py文件在执行的时候,如果你站在资源单位的角度来看,我们称为一个主进程,如果站在代码执行的角度来看,它叫做主线程,只是一种形象的说法,其实整个代码的执行过程成为线程,也就是干这个活儿的本身称为线程,但是我们后面学习的时候,我们就称为线程去执行某个任务,其实那某个任务的执行过程称为一个线程,一条流水线的执行过程为线程

#进程vs线程
#1 同一个进程内的多个线程是共享该进程的资源的,不同进程内的线程资源肯定是隔离的
#2 创建线程的开销比创建进程的开销要小的多


#并发三个任务:1启动三个进程:因为每个进程中有一个线程,但是我一个进程中开启三个线程就够了
#同一个程序中的三个任务需要执行,你是用三个进程好 ,还是三个线程好?
#例子:
    # pycharm 三个任务:键盘输入  屏幕输出  自动保存到硬盘
    #如果三个任务是同步的话,你键盘输入的时候,屏幕看不到
    #咱们的pycharm是不是一边输入你边看啊,就是将串行变为了三个并发的任务
    #解决方案:三个进程或者三个线程,哪个方案可行。如果是三个进程,进程的资源是不是隔离的并且开销大,最致命的就是资源隔离,但是用户输入的数据还要给另外一个进程发送过去,进程之间能直接给数据吗?你是不是copy一份给他或者通信啊,但是数据是同一份,我们有必要搞多个进程吗,线程是不是共享资源的,我们是不是可以使用多线程来搞,你线程1输入的数据,线程2能不能看到,你以后的场景还是应用多线程多,而且起线程我们说是不是很快啊,占用资源也小,还能共享同一个进程的资源,不需要将数据来回的copy!
什么是线程

相关文章: