线程进程

进程:
Process.Start("calc");//括号内是计算机可识别的应用程序名

弊端:有许多程序不知道它的运行名字到底是什么,如果写错了,就会出现程序崩溃错误(防止崩溃可以try住)

//实例化进程类
Process p = new Process();
//创建进程开启路径对象
ProcessStartInfo psi = new ProcessStartInfo(textBox1.Text);
//进程类开启路径指向
p.StartInfo = psi;
//启动进程,不是立刻开启,什么时候开启时由CPU决定
p.Start();

线程:
进程理解成为一个公司,公司默认有一个老板
老板就理解成为主线程

线程理解成为员工,公司里有好多事,不能都让老板来干,干不过来
员工去做一件事,不会耽误老板的正常工作

程序为什么会假死?因为主线程被占用了

线程去执行一段需要时间的代码,主线程不会被占用,程序就不会出现假死状态了

//创建线程类,并使用委托,指定这个线程要执行的是哪个函数
Thread th = new Thread(aaa);
//开启线程执行功能,也不是立刻执行
th.Start();

问题一:
线程可以开启很多个,如果用户可以无限点击按钮,那么有可能会造成电脑CPU使用率过高

用线程执行方法,只能传一个参数,并且此参数必须是object类型

程序默认不允许跨线程访问对象

关闭监控就可以了
怎么关?
在构造函数中,实例化方法下面加上这句话:
Control.CheckForIllegalCrossThreadCalls = false;

问题二:

默认主窗体已经关闭,但是线程如果还未执行完工作内容,那么会默默的继续执行,直到执行完毕后才会将整个进程关闭

程序默认所有的线程都为:前台线程

解决办法:将新开的线程变为后台线程
th.IsBackground = true;

总结:
线程所在的命名空间:System.Threading;
线程类:Thread th = new Thread(方法名);
//没有不要参数的构造函数,常用的为,1个参数,参数类型是委托类型,需要一个方法指向

变为后台线程:
th.IsBackground = true;

线程启动:
th.Start();

如果要执行带参数的方法,那么这个方法的参数必须是object类型,参数传递的位置在Start方法的括号中

允许跨线程访问对象:
在构造函数的构造方法下面加上:
Control.CheckForIllegalCrossThreadCalls = false;

停止线程:
th.Abort();

时间: 2024-11-08 13:45:55

线程进程的相关文章

线程 进程 多线程 多进程

进程和线程的主要区别在于多进程每个进程拥有独立存储空间,而多线程共享存储空间.对于单核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.定义:最小的执行单位,线程的出现是为了

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

第九天 线程 进程 协程 队列

详细链接http://www.cnblogs.com/alex3714/articles/5230609.html 1.线程:包含在进程中,是操作系统运算调度的最小单位,是一串指令的集合,直接与cpu交互 2进程:进程是一个程序各种资源的集合.操作系统通过管理这个集合进而运行程序,进程本身并不执行,进程通过调用线程来调度cpu. 3.不同点: 一个线程可以控制和操作同一进程里的其他线程,但是进程只能操作子进程 创建新线程很简单,但是创建一个子进程需要对父进程进行拷贝 线程共享内存,进程的内存是独

[进程与线程]进程、线程的生活

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握. 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂. 材料的地址:http://www.qnx.com/developers/docs/6.4.1/neutrino/getting_started/s1_procs.html 1. 计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. 2.  假定工厂的电力有限,一次只能供给一个车间使用.也就是说,一个车间开工