C# 进程和线程
一、进程和线程
进程是对一段静态指令序列的动态执行过程,是系统进行资源分配和调度的基本单位。与进程相关的信息包括进程的用户标志、正在执行的已经编译好的程序、程序和数据在存储器中的位置等。同一个进程有可以划分为若干个独立执行流,称之为线程。线程是CPU调度的基本单位。例如在Windows环境下,用户可以同时运行多个应用程序,每个致谢的应用程序就是一个进程。
进程与线程的划分对提高软件的并行性很重要,实现分时处理。
二、Process类
Process类是用于完成相关进程的相关处理任务,可以在计算机上启动和停止进程,也可以查询进程的相关信息。启动进程的一般方法是:
(1)首先创建Process类的实例;
(2)设置对象的StartInfo属性;
(3)调用对象的Start方法启动进程;
三、Thread类
Thread类用于创建和控制线程,对线程的操作有:启动线程,终止线程,合并线程,让线程休眠。
1、启动线程
首先创建一个线程
Thread t=new Thread(enterpoint);//enterpoint是线程的入口,即线程执行的方法。
2、终止线程
有两种方法,方法一:事先设置一布尔变量,在其他线程可以修改该变量的值二传递给该线程,作为它是否需要终止的判断条件,而在该线程中循环检测这个变量,以确定是否退出该线程。实际编程中一般使用这种方法。方法二:通过调用Thread类的Abort方法强行终止线程。
3、合并线程
Join方法用于把两个并行执行的线程合并为一个线程。如果一个线程t1在执行的过程中需要等待另一个线程t2结束后才能继续执行,可以在t1的程序模块中调用t2的Join方法。
4、让线程休眠
调用Thread类的Sleep方法,即让线程休眠。如 Thread.Sleep(1000);
5、线程优先级
当线程之间争夺CPU的时间片时,CPU是按照线程的优先级进行服务的。如设置线程t的优先级为最高,t.priority=ThreadPriority.Highest;
6、线程池
7、同步
同步,是指多个线程之间存在先后执行顺序的关联关系。 可以使用lock语句使多个线程合符逻辑。
C# 进程和线程的更多相关文章
- 关于Java中进程和线程的详解
一.进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命 周期.它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而 ...
- Java中的进程和线程
Java中的进程与线程 一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是 ...
- Java中的进程与线程(总结篇)
详细文档: Java中的进程与线程.rar 474KB 1/7/2017 6:21:15 PM 概述: 几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进 ...
- C# - 多线程 之 进程与线程
并行~并发 并发 Concurrency,逻辑上的同时发生,一个处理器(在不同时刻或者说在同一时间间隔内)"同时"处理多个任务.宏观上是并发的,微观上是按排队等待.唤醒.执行的步骤 ...
- Android 的进程和线程
进程和线程 如果某个应用程序组件是第一次被启动,且这时应用程序也没有其他组件在运行,则android系统会为应用程序创建一个包含单个线程的linux进程.默认情况下,同一个应用程序的所有组件都运行在同 ...
- Python之路第一课Day9--随堂笔记之二(进程、线程、协程篇)
本节内容 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queu ...
- python之进程与线程
什么是操作系统 可能很多人都会说,我们平时装的windows7 windows10都是操作系统,没错,他们都是操作系统.还有没有其他的? 想想我们使用的手机,Google公司的Androi ...
- [转载]了解Linux的进程与线程
本文转自Tim Yang的博客http://timyang.net/linux/linux-process/ .对于理解Linux的进程与线程非常有帮助.支持原创.尊重原创,分享知识! 上周碰到部署在 ...
- python 进程和线程
python中的进程.线程(threading.multiprocessing.Queue.subprocess) Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就 ...
- Python_Day10_进程、线程、协程
本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\ ...
随机推荐
- Struts 2开发基本流程
Struts 2工作流程 Struts2是一个基于MVC设计模式的Web开发框架, 正如官网上介绍的那样: ApacheStruts 2 is an elegant, extensible frame ...
- Download Free Oracle Reports Building Guide eBook
A very nice ebook on building reports in Oracle fusion middleware 11g. This manual is intended for a ...
- [原创]Keil uVision4 安装破解
Keil uVision4 安装没什么特别的,跟一般Windows软件安装方法相同,这里不再赘述. 安装完成界面如下图,未破解之前,点击编译,下载等选项都会出现未响应提示,软件会卡死.下面进行软件破解 ...
- HTML 在安卓手机端软键盘弹出顶起页面布局的解决办法
$('body').height($('body')[0].clientHeight); 以上是背景即BODY被顶起的解决办法. 如果是footer被顶起,则可以用判断解决, $('input').f ...
- kafka使用getOffsetsBefore()获取获取offset异常分析
根据时间戳获取kafka的topic的偏移量,结果获取的偏移量量数据组的长度为0,就会出现如下的数组下标越界的异常,实现的原理是使用了kafka的getOffsetsBefore()方法: Excep ...
- Git 使用教程
Git 使用教程 更详细请参考:廖雪峰的官方网站 - Git教程 1. 安装Git客户端软件 Git for Windows http://msysgit.github.io/ 2. 创建版本库 两点 ...
- Pod 的安装
1.如果之前已经安装过的 gem list --local | grep cocoapods 会看到如下输出: cocoapods (1.1.1)cocoapods-deintegrate (1.0. ...
- css3 文字过长用...代替
white-space: nowrap; text-overflow: ellipsis; overflow: hidden; white-space:nowrap 代表多个空格/回车不换行: tex ...
- GNS3 IOU 配置
GNS3使用视频: http://edu.51cto.com/lesson/id-25295.html GNS3 IOU 与VM http://www.mamicode.com/info-detail ...
- Linux基础知识
1.url中不写端口号,默认就是80端口:本机是127.0.0.1或者localhost 2.用户管理 查看当前用户: id:可以查看当前用户:whoami:查看当前的用户:who:可以查看当前已经登 ...