core--主线程
windows的线程是windows可以分配给cpu的最小单元,对window应用程序的管理,最小的管理单位就是线程。那什么是线程?线程其实什么都不是,只是一个概念,没有实体,又看不见。这个概念的定义我认为是:程序员为自己的工作所编写的一段指令序列。从CPU的角度来讲,没有OS,没有Thread,只有指令。而在windows中,所谓的线程既是程序员自己所定义的一系列CPU调用指令。当然一般的程序员不会去真正使用汇编调用CPU指令,而是通过调用WINDOWS API封装后的CPU指令来达到自己的目的。
那么一个线程的开始和结束标示是什么呢?CPU怎么知道一个线程开始了,一个线程结束了呢?答案是没有标示,之所以要提出“线程”这个概念,是为了方便程序员的对于windows程序设计的理解。下面我们就来通过windows的应用程序来深入理解线程。
一个程序的启动顺序如下:
1.用户点击程序的图标
2.WINDOWS初始化进程
3.系统创建线程
4.线程执行c++运行库的启动代码
5.C++调用入口点函数(_tWinMain 或者_tmian)
6.开始执行用户所写的代码
7.返回入口点函数
8.返回c++启动代码
9.c++启动代码开始调用exitprocess来销毁进程
10.一个程序执行完毕
“细心的朋友可能已经察觉到c++的运行库代码似乎和windows的API绑定了,也就是说这里所说的C++运行库,不能在其他操作系统上使用”
对于程序员来讲,上面的第六步,也就是自己实现程序的地方——线程的实体。这个线程在windows中被称作“主线程”
core--主线程的更多相关文章
- android主线程ActivityThread
ActivityThread在Android中它就代表了Android的主线程,但是并不是一个Thread类. 源码如下: http://androidxref.com/6.0.0_r1/xref/f ...
- C# 多线程join的用法,等待多个子线程结束后再执行主线程
等待多个子线程结束后再执行主线程 class MultiThread{ #region join test public void MultiThreadTest() { Thread[] ths = ...
- Unity多线程(Thread)和主线程(MainThread)交互使用类——Loom工具分享
Unity多线程(Thread)和主线程(MainThread)交互使用类——Loom工具分享 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com ...
- C#新开一个线程取到数据,如何更新到主线程UI上面
一:问题 之前有被面试官问过,在WinForm中,要去网络上获取数据,由于网络环境等原因,不能很快的完成,因此会发生进程阻塞,造成主进程假死的现象,需要怎么解决? 二:思路 因此,往往是新 ...
- Android ActivityThread(主线程或UI线程)简介
1. ActivityThread功能 它管理应用进程的主线程的执行(相当于普通Java程序的main入口函数),并根据AMS的要求(通过IApplicationThread接口,AMS为Client ...
- C#用副线程改主线程(UI线程)的控件属性的方法(包括Winform和WPF)
C#用副线程去试图修改主线程的UI控件会报出异常,解决方案是使用副线程注册事件通知主线程自己去修改UI控件 在winform中,方法如下 private void button1_Click(obje ...
- 14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率:
14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率: 主线程 在InnoDB 是一个线程 执行各种任务在后台. ...
- handler更新UI主线程
示例:下面代码的功能是修改UI主线程TextView的内容 public class MainActivity extends Activity { private Button btn_start; ...
- [置顶] 使用严苛模式打破Android4.0以上平台应用中UI主线程的“独断专行”
传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 已经有好一段时间没有关注Android应用方面的事情了:)最近单位来了一个Androi ...
- GCD之全局、主线程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 -(NSString *)fetchData { [NSThread sleepFo ...
随机推荐
- SQLite中的日期基础
SQLite包含了如下时间/日期函数: datetime().......................产生日期和时间 date()...........................产生日期 t ...
- Ogre1.8.1源码编译
本文的编译环境为Windows7_SP1 + VS2010_SP1 + CMake2.8.11 :) 资源下载 1. 下载Ogre1.8.1的源代码,下载链接地址:http://www.ogre3 ...
- HDU5002 Tree(LCT)
今天做了一道LCT模板题之后忽然间好像记起来LCT的模板怎么用了,于是就把上次网络赛的一道LCT补一下.典型的删边,加边操作,还有路径加和路径set为一个数.维护的是路径第二大以及它有多少个,后来想想 ...
- hdu 2571 命运(递推,请小心)
题目 //不能广搜,会超内存//可以用dp思想模拟//map 后来保存的是 保存由前面推来的最大的幸运总值的点//下标从1开始,不然倍数会有问题 //AC 代码: AC代码 //不能广搜,会超内存 / ...
- 【QT】找茬外挂制作
找茬外挂制作 找茬游戏大家肯定都很熟悉吧,两张类似的图片,找里面的不同.在下眼神不大好,经常瞪图片半天也找不到区别.于是乎决定做个辅助工具来解放一下自己的双眼. 一.使用工具 Qt:主要是用来做界面的 ...
- window内存管理与内存原理
转自: http://blog.csdn.net/iamfranter/article/details/6826270 WIndows为每个进程分配了4GB的虚拟地址空间,让每个进程都认为自己拥有4G ...
- 与Wii控制手柄通信的托管代码库(转)
2009-01-16 翻译 HID Human Input Device 人工输入设备 Wii Fit Balance Board 平衡板 IR ...
- 李洪强iOS开发之UICollectionView的使用
想做如下的界面效果(纯代码) ------------------------------------------------------------------------------------ ...
- Spring框架学习之第7节
配置Bean的细节 ☞尽量使用scope=”singleton”,不要使用prototype,因为这样对我们的性能影响较大 ②如何给集合类型注入值 Java中主要的map,set,list / 数组 ...
- 新Android工程src和layout文件夹为空
问题:SDK和ADT版本冲突 解决方案: 1.菜单->Help->Install New Software.. 2.在work with放入地址:http://dl-ssl.google ...