1.进程定义

狭义的定义: 进程是正在运行的程序的实例。

广义的定义:进程是一个具有 一定独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。

我们都知道程序,一个程序是静态的,通常是存放在外存中的。而当陈旭被调入内存中运行后,就成了进程。顾名思义,进程就是进行中的程序,它是个动态的概念。是系统进行资源分配与调度的基本单位。

2.线程定义

线程: 一堆指令的集合

一个进程内部可能包含了很多顺序执行流,每个顺序执行流就是一个线程。

每个进程启动时候会自动启动一个线程,通常这个线程被称之为主线程。 其他的线程可以由主线程创建,每个线程可以创建自己的子线程

3.进程与线程的区别:

1.线程共享内存空间,每个进程则是相互独立的。(比如word不能访问qq)

2.一个进程里的线程之间可以直接交流(数据共享),两个进程想通信必须通过一个中间代理来实现,进程间是相互独立的不能直接通信。

3..创建新线程很简单,创建新进程需要对齐父进程进行一次克隆。(duplication)

4.一个线程可以控制和操作同一进程里的其他线程,但是进程只能操作其子进程

5.对于主线程的修改可能会影响到其他线程的运行。但是对父进程的修改不会影响到其子进程,但是不能挂掉父进程,如果挂掉父进程则子进程也会挂掉。

4.多线程实例:

单线程:

import threading,time

def run(n):
print("task",n)
time.sleep() starttime = time.time()
#t1 = threading.Thread(target=run,args=("t1",))
#t2 = threading.Thread(target=run,args=("t2",))
#t1.start()
#t2.start() run("t1")
run("t2") endtime = time.time()
print(endtime-starttime) 执行结果:

[python@heaven-00 0906]$ python threadingtest.py
task t1
task t2
4.004261016845703

多线程:

import threading,time

def run(n):
print("task",n)
time.sleep() starttime = time.time()
t1 = threading.Thread(target=run,args=("t1",)) #注意此处args参数 即使是一个参数后面也要有“,”
t2 = threading.Thread(target=run,args=("t2",))
t1.start()
t2.start() #run("t1")
#run("t2") endtime = time.time()
print(endtime-starttime) 执行结果:

[python@heaven-00 0906]$ python threadingtest.py
task t1
task t2
0.0005490779876708984

通过对比可以看出,多线程时候程序会在一个线程运行时候并行运行后面的代码,大大提高了工作效率。

通过类启用线程:

import threading,time

class MyThread(threading.Thread):              #定义自己的线程类,继承threading.Thread类
def __init__(self,n):
super(MyThread,self).__init__() #重构
self.n = n def run(self):
print("running task ",self.n) t1 = MyThread("t1")
t2 = MyThread("t2") t1.run()
t2.run()

python3 进程与线程的更多相关文章

  1. Python3 进程、线程和协程

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 进程.线程和协程的对比 1.定义对比 进程:是系统进行资源分配的基本单位,每启动一个进程,操作系统都需要为其分配运 ...

  2. 11.python3标准库--使用进程、线程和协程提供并发性

    ''' python提供了一些复杂的工具用于管理使用进程和线程的并发操作. 通过应用这些计数,使用这些模块并发地运行作业的各个部分,即便是一些相当简单的程序也可以更快的运行 subprocess提供了 ...

  3. Python3 进程 线程 同步锁 线程死锁和递归锁

    进程是最小的资源单位,线程是最小的执行单位 一.进程 进程:就是一个程序在一个数据集上的一次动态执行过程. 进程由三部分组成: 1.程序:我们编写的程序用来描述进程要完成哪些功能以及如何完成 2.数据 ...

  4. Python3学习之路~9.2 操作系统发展史介绍、进程与线程区别、线程语法、join、守护线程

    一 操作系统发展史介绍 参考链接:http://www.cnblogs.com/alex3714/articles/5230609.html 二 进程与线程 进程: 对各种资源管理的集合 就可以称为进 ...

  5. python之进程与线程

    什么是操作系统       可能很多人都会说,我们平时装的windows7 windows10都是操作系统,没错,他们都是操作系统.还有没有其他的? 想想我们使用的手机,Google公司的Androi ...

  6. python 进程和线程

    python中的进程.线程(threading.multiprocessing.Queue.subprocess) Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就 ...

  7. python中的进程、线程(threading、multiprocessing、Queue、subprocess)

    Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CP ...

  8. python 学习笔记八 进程和线程 (进阶篇)

    什么是线程(thread)? 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执 ...

  9. Python自学笔记-进程,线程(Mr serven)

    对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了 ...

随机推荐

  1. [Selenium] Android HTML5 中 Application Cache

    HTML5 中引入了 Application Cache,这意味着 Web 应用程序可以被缓存到本地,且可在没有网络的情况下也能访问该 Web 应用程序 Application Cache 在以下3个 ...

  2. [Selenium] WebDriver 操作文件系统

    1)屏幕截图 接口函数是 TakesScreenshot 示例: import java.io.File; import org.apache.commons.io.FileUtils; public ...

  3. BZOJ_4609_[Wf2016]Branch Assignment_决策单调性+带权二分

    BZOJ_4609_[Wf2016]Branch Assignment_决策单调性+带权二分 Description 要完成一个由s个子项目组成的项目,给b(b>=s)个部门分配,从而把b个部门 ...

  4. BZOJ_3295_[Cqoi2011]动态逆序对_CDQ分治+树状数组

    BZOJ_3295_[Cqoi2011]动态逆序对_CDQ分治+树状数组 Description 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一 ...

  5. Luogu网校听课笔记(自用

    TG助学课——noilinux 8.2 深夜 Noi Linux的使用——darkflames的博客 #include<bits/stdc++.h> using namespace std ...

  6. 【旧文章搬运】PspCidTable攻与防

    原文发表于百度空间,2009-03-29========================================================================== PspCi ...

  7. qq截图原理

    屏幕截图实现的大体思想是:发起截图时,将当前窗口的图像保存到内存中,然后弹出一个置顶的全屏窗口,将保存的桌面图片绘制到这个全屏窗口上:初始时绘制的是灰化的桌面图像,选择截图区域后,则将选中的区域绘制成 ...

  8. (水题)洛谷 - P1478 - 陶陶摘苹果(升级版)

    https://www.luogu.org/problemnew/show/P1478 没啥好说的…… 居然还漏写一个等于号WA了一发. #include<bits/stdc++.h> u ...

  9. 洛谷 - P1739 - 表达式括号匹配 - 模拟 - 栈

    https://www.luogu.org/problemnew/show/P1739 虽然应该是用栈的……但是直接模拟就可以了. #include<bits/stdc++.h> usin ...

  10. hdoj5793 A Boring Question【找规律】

    找出的规律.... 1 2 3 2 2 7 3 2 15 4 2 31 5 2 63 1 3 4 2 3 13 3 3 40 4 3 121 5 3 361 然后我们来推个公式: 比如说a2=3a1+ ...