zoukankan      html  css  js  c++  java
  • 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的初识。

  • 相关阅读:
    OpenEuler下OpenSSL的安装
    《Unix/Linux系统编程》第四章学习笔记
    缓冲区溢出实验
    2.3.1测试
    鲲鹏服务器测试
    第六章学习笔记(20191213兰毅达)
    第五章学习笔记(20191213兰毅达)
    stat命令的实现-mysate(20191213兰毅达)
    反汇编测试(20191213兰毅达)
    OpenEuler树莓派基础实验
  • 原文地址:https://www.cnblogs.com/coder-2017/p/8624577.html
Copyright © 2011-2022 走看看