C#关于多线程原理
来源:互联网 发布:国内最美的海滩知乎 编辑:程序博客网 时间:2024/06/09 22:21
相信大家经常听说 进程和线程 ,当然这东西出现必然有他的用处
什么是进程?
图书上就是进程,你会发现我的电脑运行多个进程
对于以前的单核电脑来说(它在某一时刻只能执行一个进程,为什么我们既能听歌,又能看电影呢,那是因为cpu在飞快的切换!)
那么对于多核当然是可以再同一时刻运行多个进程了
上面说了进程,还的补充一点,进程间的内存是相互独立的!
下面说下线程:
线程是进程的最少执行单元,这话说的有点专业,还是上个简单的图
说了这么多看代码!
class Program { static void Main(string[] args) { f1(); } static void f1() { f2(); } static void f2() { f3(); } static void f3() { Console.WriteLine("M3.........."); } } }//这段代码明显是在一个单线程里面完成的!
下面看一个图更能说明问题
下面看一个多线程的执行代码:
class Program { static void Main(string[] args) { //创建线程 Thread thread = new Thread(run); //run 方法在 t线程中运行 thread.Start();//这段代码执行瞬间结束 告诉系统分配新的栈内存给t线程 //这段代码在主线程 for (int i = 0; i < 10; i++) { Console.WriteLine("main--->"+i); } //有了多线程 main方法结束只是主线程中没有方法栈帧 } static void run() { for (int i = 0; i < 100; i++) { Console.WriteLine("run"+i); } }}下面看一下执行结果! 截图一部分,后面也是输出从图可以看出 它并不是一直连续输出的,而main方法里的for结束后还在执行可能你会想到,是创建了线程的效果,为什么会产生这种效果呢?看下面图:
以上是本人在工作,学习之余的一点总结,线程原理调用主要体现在这幅图里(开辟了新的线程栈内存!)
当然还有很多不足,勿ping 缺点欢迎指出
http://www.xue5.com/Developer/CSharp/700518.html
- C#关于多线程原理
- 关于多线程简单原理
- 关于C#多线程编程
- 关于C#多线程处理
- 关于多线程的工作原理
- 关于C#多线程和进度条
- c#多线程,原理和常用方法
- C#关于多线程及线程同步
- 关于C#多线程委托的简单讲解
- C# 关于多线程的一点事
- Visual C#中的多线程编程原理与实现例子
- C#中的多线程编程原理与实现例子
- 多线程原理
- 多线程原理
- 多线程(多线程原理)
- 多线程(多线程原理)
- C#中关于多线程编程的示例代码
- 关于C#多线程之一——异步委托
- JSON(0):json简介
- Using R to read and plot the csv data
- 内存卡EXT3分区转换成EXT4分区的简单方法
- WebService中如何使用soapheader
- cocos2d-x json解析 jsonBox
- C#关于多线程原理
- win7 SqlServer2005 Management Studio Express 安装错误提示:29506
- SkinMagic 进行皮肤设置 (SkinMagic使用教程)
- PAT (Basic Level) Practise (中文)—— 1009. 说反话
- 用相对布局实现登陆界面设计
- c++输出格式设置
- Android页面切换方法和区别
- Google发布GAE 1.8.1版
- Mac下删除和安装cocos2d-x