复习线程、进程

1.1、进程和进程之间是独立的,哪怕是父进程和子进程之间也是独立的。包括他们的内存也是独立的。

1.2、线程和线程之间是独立的:这个独立说的是他们的栈是独立的(数据独立)。

1.3、线程和进程之间是不独立:线程需要运行进程空间中的代码、进程需要线程来运行代码。二者缺一不可,缺了任何一个他们都会消亡。

1.4、所有的线程会在进程结束时消亡(不应该这样)、进程在无任何一个线程运行时消亡(这才是正确的设计)。

1.5、线程应该是自然结束的。不然的话会导致内核对象的泄漏。

1.6、某一根线程被强行关闭时,进程还存在的话会导致内存泄漏。

1.7、总而言之:我们不应该做任何强制关闭当前线程的行为。

1.8、但是在编程中我们可能会碰到需要关闭某一根线程的时候:

1.9、在线程自然退出的时候会做什么事情:调用使用过的对象的析构函数。

1.10、CreateProcess,是当前的一个线程来启动了一个进程。而新启动的这个进程是当前这个进程的一个子进程。

CreateProcess之后实用计数会为二,所以记得CloseHandle。

1.11、ShellExcute,是可以提权的启动一个进程。是用于需要更多权限的进程启动,而以这种方式进行提权是被逼无奈的一种方式。

时间: 08-21

复习线程、进程的相关文章

线程 进程 多线程 多进程

进程和线程的主要区别在于多进程每个进程拥有独立存储空间,而多线程共享存储空间.对于单核CPU来讲,如果是阻塞操作,或者不耗时非阻塞操作,多进程/线程不会提高效率,这时候多进程/线程最有用的通常是耗时而又非阻塞的I/O操作. 打个比喻,一个人要看两部电影,可以看完一部再看另一部,也可以同时看,看一眼这个暂停,看一眼那个再暂停看回前一个,快速不停切换,你会觉得因为两部一起看所以先看完吗?理论上两部电影播放时间加起来是一样,所以看完所用时间应该一样.但是实际使用时间反而可能第一种方法快,为什么?切换是

线程进程概述

进程和线程目的,提高执行效率 1,单进程单线程,主进程,主线程 2,自定义线程: 主线程 主线程 子线程 进程: 优点,同时利用多个CPU,能同时进行多个操作 缺点,耗费资源,(重新开辟内存) 线程: 优点,共享内存,IO操作时候,创造并发操作 缺点,抢占资源 进程不是 越多越好,CPU个数=等于进程个数 线程也不是越多约好,具体案例具体分析 计算机中执行任务的最小单元是:线程 IO 操作利用CPU GIL,全局解释器锁 IO密集型(不用CPU) 多线程 计算密集型(用CPU) 多进程

我的读书笔记(线程进程)

线程有时候可以被称为微进程或轻量级进程,它的概念和进程十分相似,是一个可以被调度的单元,并且维护自己的堆栈和上下文环境,线程是附属进程的,一个进程可以包含1个或者多个线程,并且同一进程内的多个线程共享一块内存快和资源,一个线程是一个操作系统可调度的基本单元,但同时它的调度受限于包含该线程的进程,也就是说操作系统首先决定了下一个执行的进程,进而才会调度该进程内的线程 线程和进程最大的区别在于隔离性的问题,每个进程都被单独地隔离,拥有自己的内存快,独占的资源及运行数据,一个进程的崩溃不会影响到其他进

线程 进程学习

1,进程与线程 进程优点:同时利用多个cpu 工作,能同时进行多个操作 效率高 进程缺点:浪费内存 线程优点:共享内存,io操作的时候可以并发 线程缺点:抢占资源 进程不是越多越好  最好= cpu 线程也不是越多越好 具体案例 具体分析 请求上下文切换好时 计算机中执行任务最小单位是线程 IO密集型(不用cpu): 多线程 计算密集型(用cpu): 多进程 创建线程: import threading def f1(a): pass t = threading.Thread(target=f1

操作系统-并发-线程-进程

操作系统/应用程序 什么是操作系统? 精简的说法:操作系统就是一个人协调,管理和控制计算机硬件资源和软件资源的控制程序 操作系统位于计算机硬件与应用软件之间,本质也是一个软件.操作系统由操作系统的内核(运行于内核态,管理硬件资源)以及系统 调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成,所以,单纯的说操作系统是运行于内核态的,是不准确的. 日常我们所知道的操作系统/应用程序: 硬件: -硬盘 -CPU -主板 -显卡 -内存 -电源 -...... 软件(装系统): -

15.python并发编程(线程--进程--协程)

一.进程:1.定义:进程最小的资源单位,本质就是一个程序在一个数据集上的一次动态执行(运行)的过程2.组成:进程一般由程序,数据集,进程控制三部分组成:(1)程序:用来描述进程要完成哪些功能以及如何完成(2)数据集:是程序在执行过程中所需要使用的一切资源(3)进程控制块:用来记录进程外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志.3.进程的作用:是想完成多任务并发,进程之间的内存地址是相互独立的二.线程:1.定义:最小的执行单位,线程的出现是为了

多线程编程复习笔记 进程与线程

1:什么是多线程? 一边听音乐,一边敲代码,一边写博客等等都是多线程的功劳: 2:进程的概念 进程是指在系统中正在运行的一个应用程序,在传统的操作系统中,是资源的分配单位又是高度运行的单位,在现代操作系统中, 进程是资源的分配单位,一个进程通常定义为程序的一个实例.在32为Windows中,进程占据4GB的虚拟地址空间 3:进程的组成部分: 进程由两个部分组成: a)操作系统用来管理进程的内核对象.内核对象也是系统用来存放关于进程的统计信息的地方 b)地址空间.它包含所有可执行模块或DLL模块的

java 线程 进程

Java多线程(一).多线程的基本概念和使用 2012-09-10 16:06 5108人阅读 评论(0) 收藏 举报  分类: javaSE综合知识点(14)  版权声明:本文为博主原创文章,未经博主允许不得转载. 一.进程和线程的基础知识 1.进程和线程的概念 进程:运行中的应用程序称为进程,拥有系统资源(cpu.内存) 线程:进程中的一段代码,一个进程中可以有多段代码.本身不拥有资源(共享所在进程的资源) 在Java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程. 区别: 1

11 线程进程协程

1 线程 1.1 基本应用 1.1.1 标准线程(常用) import threading def f1(arg): print(arg) t = threading.Thread(target=f1, args=(123,)) t.start() 1.1.2 自定义线程 自定义线程类既threading.Thread流程,自定义run方法 import threading class MyThread(threading.Thread): #自定义类,继承threading.Thread类 d