process (进程) and thread (线程)
process (进程) and thread (线程)
Yongqiang Cheng
既然选择了远方 便只顾风雨兼程 - 永强
展开
-
进程与线程
进程与线程现代操作系统 Mac OS X,UNIX / Unix,Linux,Microsoft Windows 等都是支持多任务的操作系统。多任务就是操作系统可以同时运行多个任务。例如你一边在用浏览器上网,一边在听音乐,一边在用 Microsoft Word 打字,这就是多任务,至少同时有 3 个任务正在运行。还有很多任务悄悄地在后台同时运行着,只是桌面上没有显示而已。多核 CPU 和单核...转载 2020-02-23 19:33:25 · 203 阅读 · 0 评论 -
top - display Linux processes
top - display Linux processes在 top 命令中按 F 键可以查看列信息。Fields Management for window 1:Def, whose current sort field is %CPU, Navigate with Up/Dn, Right selects for move then <Enter> or Left commit...翻译 2019-12-30 21:05:20 · 407 阅读 · 0 评论 -
objgraph - Python Object Graphs - 内存泄漏 (Memory Leak)
objgraph - Python Object Graphshttps://pypi.org/project/objgraph/https://github.com/mgedmin/objgraphobjgraph is a module that lets you visually explore Python object graphs.objgraph 是一个模块,可让您直观地浏览...翻译 2019-12-30 15:50:51 · 3871 阅读 · 1 评论 -
htop - interactive process viewer - 交互式进程查看器
htop - interactive process viewer - 交互式进程查看器1. DESCRIPTIONHtop is a free (GPL) ncurses-based process viewer for Linux.Htop 是 Linux 免费 (GPL) 的基于 ncurses 的进程查看器。It is similar to top, but allows you ...翻译 2019-12-29 15:14:46 · 982 阅读 · 0 评论 -
多线程编程 - thread 模块
多线程编程 - thread 模块除了派生线程外,thread 模块还提供了基本的同步数据结构,称为锁对象 (lock object,亦称原语锁、简单锁、互斥锁、互斥和二进制信号量)。这个同步原语和线程管理是密切相关的。thread 模块的核心函数是 start_new_thread()。它的参数包括函数 (对象)、函数的参数以及可选的关键字参数。将专门派生新的线程来调用这个函数。threa...转载 2019-05-11 14:00:33 · 417 阅读 · 0 评论 -
多线程编程 - threading 模块
多线程编程 - threading 模块更高级别的是 threading 模块。除了 Thread 类以外,该模块还包括许多非常好用的同步机制。threading 模块的对象Thread() 类同样包含某种同步机制,所以锁原语的显式使用不再是必需的了。barrier ['bærɪə]:n. 障碍物,屏障,界线 vt. 把...关入栅栏semaphore ['seməfɔː]:n. 信号...转载 2019-05-11 16:04:55 · 335 阅读 · 0 评论 -
理解 Python 中的 ThreadLocal 变量 (一)
理解 Python 中的 ThreadLocal 变量 (一)原文链接地址 http://python.jobbole.com/多线程环境下,每一个线程均可以使用所属进程的全局变量。如果一个线程对全局变量进行了修改,将会影响到其他所有的线程。为了避免多个线程同时对变量进行修改,引入了线程同步机制,通过互斥锁、条件变量或读写锁来控制对全局变量的访问。只用全局变量并不能满足多线程环境的需求,很多...转载 2019-05-25 13:58:30 · 956 阅读 · 0 评论 -
多线程编程 - 单线程和多线程执行对比
多线程编程 - 单线程和多线程执行对比递归求斐波那契、阶乘与累加函数的执行。该脚本按照单线程的方式运行这三个函数,之后使用多线程的方式执行同样的任务,用来说明多线程环境的优点。以单线程模式运行时,只是简单地依次调用每个函数,并在函数执行结束后立即显示相应的结果。而以多线程模式运行时,并不会立即显示结果。因为我们希望让 MyThread 类越通用越好 (有输出和没有输出的调用都能够执行...转载 2019-05-12 13:48:11 · 1052 阅读 · 0 评论 -
多线程编程 - 相关模块
多线程编程 - 相关模块多线程应用编程中可能会使用到的与线程相关的标准库模块。转载 2019-05-12 17:23:29 · 217 阅读 · 0 评论 -
多线程
多线程多任务可以由多进程完成,也可以由一个进程内的多线程完成。进程是由若干线程组成的,一个进程至少有一个线程。线程是操作系统直接支持的执行单元,高级语言通常都内置多线程的支持。Python 的线程是真正的 POSIX Thread,而不是模拟出来的线程。Python 的标准库提供了两个模块:_thread 和 threading。_thread 是低级模块,threading 是高级模块,...转载 2019-05-18 14:14:42 · 363 阅读 · 0 评论 -
subprocess - Subprocess management (子进程管理)
subprocess - Subprocess management (子进程管理)https://docs.python.org/3.7/library/subprocess.htmlhttps://docs.python.org/zh-cn/3.7/library/subprocess.htmlSource code: Lib/subprocess.pyThe subprocess m...转载 2019-05-15 20:45:26 · 947 阅读 · 0 评论 -
多线程编程 - 线程和 Python
多线程编程 - 线程和 Python全局解释器锁对线程的限制。1. 全局解释器锁Python 代码的执行是由 Python 虚拟机 (又名解释器主循环) 进行控制的。Python 在设计时是这样考虑的,在主循环中同时只能有一个控制线程在执行,就像单核 CPU 系统中的多进程一样。内存中可以有许多程序,但是在任意给定时刻只能有一个程序在运行。尽管 Python 解释器中可以运行多个线程,但是在...转载 2019-05-10 22:54:39 · 253 阅读 · 0 评论 -
多线程编程 - 生产者-消费者问题和 Queue/queue 模块
多线程编程 - 生产者-消费者问题和 Queue/queue 模块生产者-消费者模型场景。在这个场景下,商品或服务的生产者生产商品,然后将其放到类似队列的数据结构中。生产商品的时间是不确定的,同样消费者消费生产者生产的商品的时间也是不确定的。使用 Queue 模块 (Python 2.x 版本,在 Python 3.x 版本中重命名为 queue) 来提供线程间通信的机制,从而让线程之间可以互...转载 2019-05-13 19:13:19 · 517 阅读 · 0 评论 -
进程 versus 线程
进程 versus 线程十分感谢廖雪峰老师的分享 (https://www.liaoxuefeng.com/)。versus ['vɜːsəs]:prep. 对,与...相对,对抗多进程和多线程是实现多任务最常用的两种方式。要实现多任务,通常我们会设计 Master-Worker 模式,Master 负责分配任务,Worker 负责执行任务。多任务环境下,通常是一个 Master,多个 ...转载 2019-05-14 09:20:23 · 215 阅读 · 0 评论 -
多进程 (multiprocessing)
多进程 (multiprocessing)十分感谢廖雪峰老师的分享 (https://www.liaoxuefeng.com/)。Unix/Linux 操作系统提供了一个 fork() 系统调用。普通的函数调用,调用一次,返回一次。fork() 调用一次,返回两次。操作系统自动把当前进程 (称为父进程) 复制了一份 (称为子进程),分别在父进程和子进程内返回。子进程永远返回 0,而父进程返回...转载 2019-03-06 11:00:04 · 1071 阅读 · 0 评论 -
Python - Concurrent Execution - threading - multiprocessing
Python - Concurrent Execution - threading - multiprocessing1. Python.orghttps://www.python.org/2. Python Documentationhttps://docs.python.org/3. Python Documentation by Versionhttps://www.python...转载 2019-05-14 19:02:29 · 293 阅读 · 0 评论 -
ThreadLocal
ThreadLocal十分感谢廖雪峰老师的分享 (https://www.liaoxuefeng.com/)。在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。1. 局部变量传递局部变量也有问题,在函数调用的时候,传递起来很麻烦。#!/usr/bin/env python3# ...转载 2019-05-20 19:49:26 · 250 阅读 · 0 评论 -
分布式进程 - 分布式计算
分布式进程十分感谢廖雪峰老师的分享 (https://www.liaoxuefeng.com/)。在 Thread 和 Process 中,优选 Process,Process 更稳定,Process 可以分布到多台机器上,而 Thread 最多只能分布到同一台机器的多个 CPU 上。Python 的 multiprocessing 模块不但支持多进程,其中 managers 子模块还支持把...转载 2019-05-20 20:34:51 · 517 阅读 · 0 评论 -
多线程编程 - Introduction
多线程编程 - introduction1. introduction在多线程编程出现之前,计算机程序的执行是由单个步骤序列组成的,该序列在主机的 CPU 中按照同步顺序执行。无论是任务本身需要按照步骤顺序执行,还是整个程序实际上包含多个子任务,都需要按照这种顺序方式执行。子任务相互独立,没有因果关系 (各个子任务的结果并不影响其他子任务的结果),这种并行处理方式可以显著地提高整个任务的性能,...转载 2019-05-10 22:39:35 · 264 阅读 · 0 评论 -
多线程编程 - 线程和进程
多线程编程 - 线程和进程1. 进程计算机程序只是存储在磁盘上的可执行二进制 (或其他类型) 文件。只有把它们加载到内存中并被操作系统调用,才拥有其生命期。进程 (有时称为重量级进程) 则是一个执行中的程序。每个进程都拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行的辅助数据。操作系统管理其上所有进程的执行,并为这些进程合理地分配时间。进程也可以通过派生 (fork 或 spawn) 新的...转载 2019-05-10 22:45:53 · 240 阅读 · 0 评论