打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于多线程简单原理

相信大家经常听说 进程和线程 ,当然这东西出现必然有他的用处

什么是进程?

图书上就是进程,你会发现我的电脑运行多个进程

对于以前的单核电脑来说(它在某一时刻只能执行一个进程,为什么我们既能听歌,又能看电影呢,那是因为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 缺点欢迎指出!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
.NET基础拾遗(5)多线程开发基础(上)
C#中的线程(一)入门
C#做了个多线程网络通信的例子
多线程编程笔记(二) - 流浪者的专栏
浅析C#中构建多线程应用程序-程序开发-红黑联盟
5天不再惧怕多线程——第一天 尝试Thread
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服