首页 > 代码库 > Windows核心编程读书笔记-第六章线程基础
Windows核心编程读书笔记-第六章线程基础
1.相较于线程,进程所使用的系统资源更多。其原因在于地址空间。为一个进程创建一个虚拟的地址空间需要大量系统资源。线程只有一个内核对象和一个栈。
2.线程的入口函数
DWORD WINAPI ThreadFunc(PVOID pvParam){ DWORD dwResult = 0; ... return(dwResult);}
线程函数的几点说明
- 线程函数可以任意命名。
- 线程函数只有一个参数,而其意义由我们(而非操作系统)来定义。因此,我们不必担心ANSI/Unicode问题。
- 线程函数必须返回一个值,它会成为该线程的退出代码。
- 线程函数应该尽可能使用函数参数和局部变量。函数的参数和局部变量是在线程栈上创建的。
3.CreateThread函数
HANDLE CreateThread( PSECURITY_ATTRIBUTES psa, DWORD cbStackSize, PTHREAD_START_ROUTINE pfnStartAddr, PVOID pvParam, DWORD dwCreateFlags, PDWORD pdwThreadID);
调用CreateThread函数,系统从进程的地址空间中分配内存给线程栈使用。新线程在与负责创建的那个线程在相同的进程上下文中运行。因此,新线程可以访问进程内核对象的所有句柄、进程中的所有内存以及同一个进程中其他所有线程的栈。
Windows核心编程读书笔记-第六章线程基础
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。