- 博客(22)
- 资源 (6)
- 收藏
- 关注
原创 旋转锁
原子操作所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。旋转锁 BOOL bUsering = FALSE; while(InterlockedExchange((long *)&bUsering, TRUE) == TRUE) Sleep
2017-06-26 20:30:30 1420
原创 线程的状态
* 有时候需要一些工具帮助我们观察线程和进程的状态 spy++打开默认是窗口* 旁边是 进程和线程 选择一个进程 右键属性 * 常规 不重要* 内存* 虚拟字节的内存* 专用字节* 可用字节* 页文件* 空格键 内存信息* 选择一个线程 右键属性* 线程iD* 进程ID* 起始地址* 线程状态* 上下文开关
2017-06-26 20:23:30 233
原创 进程的启动到销毁详解
CreateThread()1. 线程的内核对象使用计数 2(我当前内核对象何时被销毁)暂停计数 1 UINT0=运行 否则都会停止退出代码 STILL_ACTIVESignaled FALSECONTEXT 值为空2. 栈 操作系统压入俩个参数栈第一个位置 lpParam栈第二个位置 lpfnAddr3. 上下文结构体 CONTEXT
2017-06-26 20:21:53 857
原创 _beginthread 和CreateThread
纯c / c++的函数_beginthreadex()引发的问题 属性 c c++ 代码生成 运行库 MT MTD多线程这一块的运行库因为 c语言的时候 并没有多线程这个概念 所以会出现各种各样的问题c语言的错误处理机制 errno(非线程安全) 全局的3条线程 共用 一个 errno 所以不知道那个线程先运行后运行1 printf->设置了er
2017-06-26 20:21:10 334
原创 饥饿线程
什么是饥饿线程?长期没有得到运行的线程(没抢到时间片),为什么抢不到时间片 因为线程的级别从0 -31 级别越高 执行的越高 抢占的时间片的可能就越高 导致 执行级别 保持不能运行的状态如何避免1 Sleep(100) //100毫秒 并非真真实实的100毫秒而是无限接近 放弃当前线程的时间片,放弃剩余的时间片2 SwitchToThread();
2017-06-26 20:19:32 2426
原创 fatal error C1189: #error : "No Target Architecture"
这个问题 是说 你使用的类型 我没找到 需要把你需要的库类型放在需要的库上面 测试代码 #include 这个库 用了 windows.h里面的自定义类型 但是我并没有在这个使用的里面加上这个头文件 导致:\program files (x86)\windows kits\8.1\include\um\winnt.h(145): fat
2017-06-18 20:02:36 1088
原创 线程
HANDLE WINAPI CreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,//线程安全结构体 让我们设置 //一般都是null 无需对此参数设置,如果希望子系统继承当前进程的句柄 //typedef struct _SECURITY_ATTRIBUTES { //DWORD nLength; //L
2017-06-18 17:44:00 236
原创 进程的权限
进程权限 内存(代码) CPU 1 DOS 物理内存 同一等级 不安全的 1 系统不稳定 2 毫无保密性2 虚拟内存xp之后出现虚拟内存 杜绝了修改操作系统代码的可能 出现进程 完全封闭的 (不符合的因为有的需要关联 比如记事本和输入法的关联.....)开放了一些接口1 你必须拥有一点的权限(用户富裕的权限)但不是很安全
2017-06-16 01:45:34 1089
原创 终止线程
1 入口函数返回最正确的方式,只有这样才能保证住主线程的所有资源都已经被正确的清理入口函数在返回时,为确保以下几件事情已经完成1 主线程所创建的任何对象都已经被正确的销毁2 操作系统会正确的释放线程的堆栈3 将进程的退出代码设置成入口函数的返回值4 递减内核对象的使用计数2 进程中的一个线程调用ExitProcess不应调用此函数来结束进程,当函数被调用的时
2017-06-15 17:16:46 179
原创 po学校作业_使用CreateProcess分别启动以下程序
使用CreateProcess分别启动以下程序:记事本计算器启动一个控制台程序 1) 显示1024*768大的窗口 2) 全屏
2017-06-15 16:12:12 360
原创 CreateProcess
CreateProcessBOOL CreateProcess( LPCTSTR lpApplicationName, // name of executable module LPTSTR lpCommandLine, // command line string LPSECURITY_ATTRIBUTES
2017-06-15 16:09:37 989
原创 应用程序类型 GUIandCUI
应用程序类型控制台用户界面(CUI)控制台程序是基于文本的,它们一般不会创建窗口或进程消息,而且不需要GUI图形用户界面(GUI)CUI程序 ,图形化的前端,它可以创建窗口,可以拥有菜单,能通过对话框与用户交互,还能使用所以标准的“视窗化”的东西 windows的几乎所有附件应用程序都是GUI程序区别1 在vs中,CUI程序的连接器开关为/SUBSYSTEM
2017-06-07 19:20:34 1400
原创 进程线程简介
Windows进程及线程进程的组成进程是“惰性”的,进程要做任何的事情,都必须让线程来运行,线程执行进程地址空间中包含的代码。(也就是说单纯的进程是没有任何意义的)一个进程可以拥有多个线程,所以的线程都能够在进程的地址空间中“伪同时”运行代码,每个线程都有他自己的一组CPU寄存器以及自己的堆栈.每个进程必须有一个线程,当系统创建一个进程时,会自动创建第一个线程,这个线程我们
2017-06-07 18:36:55 201
原创 异步Io的 四种提醒方式方式
1设备内核对象点击打开链接2事件内核对象//提醒同步以及交互点击打开链接3可提醒I/O不可夸线程的点击打开链接4 I/O完成端口完成端口使用
2017-06-01 18:06:56 616
原创 设备 IO
void EquipmentIO(){ HANDLE hFile = CreateFile(TEXT("demo"), GENERIC_READ | GENERIC_WRITE,//打开 的权限 0,//共享权限 nullptr, OPEN_EXISTING,//打开的方式 FILE_FLAG_OVERLAPPED,// overlapped I O nullptr);
2017-06-01 18:03:48 381
原创 事件Io
//事件 (串行模型)//俩个程序 直接的 共享//状态 做判断void EventIO(){ HANDLE hFile = CreateFile(TEXT("DEMO.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, nullptr, OPEN_ALWAYS, FILE_FLAG_OVERLAPPED, nullptr);
2017-06-01 18:02:43 483
原创 可提醒 IO
//可提醒 IO (串行模型){ HANDLE hFile = CreateFile(TEXT("DEMO.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, nullptr, OPEN_ALWAYS, FILE_FLAG_OVERLAPPED, nullptr); if (hFile != INVALID_HANDLE_VAL
2017-06-01 17:58:44 441
原创 完成端口 IOCP
//串行模型//只有一根逻辑线//并行模型 //多线程 多名工人在做这个事情//完成端口 //单核-》 模拟出来的 多进程//多核-》 真正的多进程 // 多线程 一定是 在操作的东西较多的时候 才是最优的 //否则的话 有可能切换用的效率比执行的高//导致 不如单线程跑的块的尬尴!!!#define IOCP_KEY_READ 1 //定义一个 i
2017-06-01 17:57:31 256
原创 CopyFile
#include #include #define IOCP_KEY_READ 1#define IOCP_KEY_WRITE 2int _tmain(int argc, _TCHAR* argv[]){ LPCTSTR lpstrSrcFilePath = TEXT("Demo.exe"); LPCTSTR lpstrDestFilePath = TEXT("DestDemo
2017-06-01 17:52:47 358
原创 vs 2013 error RC2108: expected numerical dialog constant
错误 双击错误 会定位到.rc里面 然后 给 定位的哪一行代码 加上 "Static", SS_BITMAP,
2017-06-01 17:36:33 811
原创 mfc 不支持尝试执行的操作 错误
在 Release 模式下 mfc 运行 弹出 一个百思不得姐 于是 改成 Debug模式 断点跟随 CDialogEx::OnInitDialog();在这个地方崩溃..且并不能 跟进去。。。 蒙逼 然后 打开 资源界面 看一下 不知道怎么少了 很多控件。。。 删除 之前残留的地方 解决问题..
2017-06-01 17:24:16 1358
解决 win7 opencv+python+pyinstaller 打包之后运行失败
2018-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人