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\ ...
随机推荐
- EasyUI---tree
EasyUI的tree在获取action返回的json字符串时最少具有三个属性id.text和children,这样在读取时才会在页面正常显示树形 这里比较重要的就是在数据库中对数据的存储吧,说白了还 ...
- js设计模式总结-迭代器模式
迭代器模式 要解决的问题 迭代器要解决的问题很简单很单纯,就是进行遍历操作. 实现原理 基本所有语言都实现了迭代器,javascript也不例外,如Array.prototype.forEach,fo ...
- SQL Server优化常用SQL语句
--所有没有主键的表 select name from sysobjects where xtype='U' and id not in ( select i.parent_obj from syso ...
- Making my own Autonomous Robot in ROS / Gazebo, Day 2: Enable the robot
Day 2: Enable the robot Git Setting git checkout master git branch day2_enable_robot git push --set- ...
- android面试题
1. 请描述一下Activity 生命周期. 答: 如下图所示.共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart(), onResume(), onP ...
- Asp.net管道模型(管线模型)
Asp.net管道模型(管线模型) 前言 为什么我会起这样的一个标题,其实我原本只想了解asp.net的管道模型而已,但在查看资料的时候遇到不明白的地方又横向地查阅了其他相关的资料,而收获比当初预 ...
- fiddler_技巧01
1.选择一个包后,要点击 "Inspectors"标签页 才能有"Raw"标签页 才能看到原始的详细信息 2. 3. 4. 5.
- redux介绍与入门
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica } p.p2 { margin: 0.0px 0.0px 0.0px 0. ...
- 关闭dialog(lhgdialog)
W.$.dialog({id:'dyj'}).close(); 成功 $("#id").dialog('close');frameElement.api.close();
- mysql timestamp类型字段的CURRENT_TIMESTAMP与ON UPDATE CURRENT_TIMESTAMP属性
timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下: 1.CURRENT_TIMESTAMP 当要向 ...