C#_线程和进程

进程



  进程是应用程序的一次动态执行。

  命名空间 ——Diagnostics

  类——Process

            Process.Start("calc");// 打开计算器

  弊端:有的程序的注册名不知道,填错了程序报错!

  代码:

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

                                总的来说进程不是很好用。



线程

  通过System.Threading.Thread类可以开始新的线程,并在线程堆栈中运行静态或实例方法。

  有的时候计算机出现假死状态,就是因为主线程被占用。

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

  

问题一:

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

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

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

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

问题二:

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

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

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

a.启动线程
  顾名思义,“启动线程”就是新建并启动一个线程的意思,如下代码可实现:
    Thread thread1 = new Thread(new ThreadStart( Count));
  其中的 Count 是将要被新线程执行的函数。
b.杀死线程
  “杀死线程”就是将一线程斩草除根,为了不白费力气,在杀死一个线程前最好先判断它是否还活着(通过 IsAlive 属性),然后就可以调用 Abort 方法来杀死此        线程。
c.暂停线程
  它的意思就是让一个正在运行的线程休眠一段时间。如 thread.Sleep(1000); 就是让线程休眠1秒钟。
d.优先级
  这个用不着解释了。Thread类中hreadPRiority属性,它用来设置优先级,但不能保证操作系统会接受该优先级。一个线程的优先级可分为5种:Normal, AboveNormal, BelowNormal, Highest, Lowest。具体实现例子如下:
thread.Priority = ThreadPriority.Highest;
e.挂起线程
  Thread类的Suspend方法用来挂起线程,直到调用Resume,此线程才可以继续执行。如果线程已经挂起,那就不会起作用。
if (thread.ThreadState = ThreadState.Running) 
{
thread.Suspend();
}
f.恢复线程
  用来恢复已经挂起的线程,以让它继续执行,如果线程没挂起,也不会起作用。
if (thread.ThreadState = ThreadState.Suspended) 
{
thread.Resume();
}

时间: 2024-08-11 08:59:57

C#_线程和进程的相关文章

Java千百问_01基本概念(006)_线程和进程有什么区别

点击进入_更多_Java千百问 1.进程是什么 进程(process)是具有一定独立功能的程序,操作系统利用进程把工作划分为一些功能单元. 进程是进行资源分配和调度的一个独立单位.它还拥有一个私有的虚拟地址空间,该空间仅能被它所包含的线程访问. 一个应用程序(application)是由一个或多个相互协作的进程组成的.例如,Visual Studio开发环境就是利用一个进程编辑源文件,并利用另一个进程完成编译工作的应用程序. 2.线程是什么 线程(thread)是进程中所包含的一个或多个执行单元

Python_oldboy_自动化运维之路_线程,进程,协程(十一)

本节内容: 线程 进程 协程 IO多路复用 自定义异步非阻塞的框架 线程和进程的介绍: 举个例子,拿甄嬛传举列线程和进程的关系: 总结:1.工作最小单元是线程,进程说白了就是提供资源的 2.一个应用程序至少有一个进程,一个进程里至少有一个线程 3.应用场景:io密集型适合用多线程,计算密集型(cpu)适合用多进程 4.GIL:全局解释器锁,作用:保证同一个进程中只能有一个线程同时被调用 5.python的一个诟病:前提是被cpu调度,因为有GIL,一个应用只有一个进程,纵容有多个线程,也体现不出

python之路第九编_线程和进程

进程.线程 进程:程序的一次执行 线程:CPU的基本调度单元 每一个进程提供需要执行程序的资源.一个进程有一个虚拟的地址空间,执行代码,开放的句柄系统对象,一个安全的情景感知,一个唯一的进程标识符,环境变量,一个优先级类,最小和最大的工作尺寸,至少有一个线程的执行,每一个进程以一个线程开始,叫做主线程,主线程可以创建多个子线程 进程是CPU一堆指令的集合,在单核CPU中,cpu一次只能执行一次任务.例如在一个工厂中,同一时间一个车间只能有一个车间可以工作,其他车间只能等待. 线程: 线程是CPU

进程_线程 之(六) --- 协程

协程简介 区别:线程和进程的操作是由程序触发系统接口,执行者是系统:协程的操作则是程序员. 协程存在的意义:对于多线程应用,CPU通过切片的方式来切换线程间的执行,线程切换时需要耗时(保存状态,下次继续).协程,则只使用一个线程,在一个线程中规定某个代码块执行顺序. 协成的原理:利用一个线程,分解一个线程成为多个微线程,注意此时从程序级别来分解的 适用场景:当程序中存在大量不需要CPU的操作时(IO),适用于协程: 实现技术 需要手动安装 greenlet模块 和 gevent模块.安装geve

线程和进程

线程和进程 进程:狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed). 简而言之,就像qq要以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,内存的管理,网络接口的调用等,对各种资源管理的集合就可以称为 进程. 进程要操作CPU必须要先创建一个线程,在当代面向线程设计的计算机结构中,进程是线程的容器. 线程:是程序执行流的最小单元,是一串指令的集合 区别: 1,线程共享内存空间和资源

python 线程,进程与协程

引言 线程 创建普通多线程 线程锁 互斥锁 信号量 事件 条件锁 定时器 全局解释器锁 队列 Queue:先进先出队列 LifoQueue:后进先出队列 PriorityQueue:优先级队列 deque:双向队列 引言 在学习过socket和socketserver后,我们了解到socketserver可以支持IO多路复用.在定义socketserver服务端的时候一般会使用: server = socketserver.ThreadingTCPServer(settings.IP_PORT,

Python-网络编程之线程与进程

一.线程与进程的区别 线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间.当进程退出时该进程所产生的线程都会被强制退出并清除.线程可与属于同一进程的其他线程共享进程所拥有的全部资源,但是起本身基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器,一组寄存器和栈). 进程是正在执行的程序实例.进程至少由一个线程组成,线程是最小的执行单元. 二.threading模块 Threading方法: t.start() # 激活线程 t.getName() # 获

线程与进程(我的理解)

最近面试有人问到线程与进程的区别,我就说进程是系统资源分配的最小单位,线程是CPU调度的最小单位.但是人家有细问了一下,我就没回答出来, 后来我查查书,没有查到我满意的解释.感觉应该是这样的(以后有新的理解会补充进来,如果有错也会改正O(∩_∩)O~) 最开始没有线程,只有进程,比如写个程序,程序运行起来以后,进程就是程序运行的实例,pid就是进程的标识. 后来有了多处理器啥的,一些程序为了用上这多个CPU,让这些程序共享系统资源等,但每个程序又有自己的一些属性,这些程序就称之为线程.如果这些程

线程与进程的区别

线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间; (2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源 (3)线程是处理器调度的基本单位,但进程不是. 4)二者均可并发执行. 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有