摘要:
关键代码段与循环锁 当线程访问另一个线程拥有的关键代码段时,调用线程就立即被置于等待状态。即该线程从用户态转入内核态。调用EnterCriticalSection函数时它使用循环锁进行循环,设法多次取得该资源。只有每次都失败时,该线程才转入内核态以便进入等待状态。 BOOL InitializeCriticalSectionAndSpinCount(PCRITICAL_SECTION pcs, DWORD dwSpinCount); 将循环锁放入关键代码,第一个参数是关键代码段结构的地址,第二个参数是使线程等待之前它试图获得资源时想要循环锁循环迭代的次数。可以是0至0 x 0 0 FFFFFF
阅读全文
posted @ 2009-05-30 10:13
o(∩_∩)o...
阅读(259)
推荐(0)
摘要:
二、高级线程同步 如果线程访问共享资源或者等待一些特殊事件的发生,如果共享资源可用或特殊事件已发生则函数返回同时该进程保持可调度状态,否则该线程处于等待状态。系统将处于等待状态的线程不占用系统资源(不浪费CPU时间),当资源可用或特殊事件发生时将线程处于可调度状态,该线程与资源或特殊事件保持同步。应该避免一个线程(通过不断查询多个线程共享或可以访问的变量的状态)与另一个线程中的任务的完成实现同步三、关键代码段 关键代码段(又叫临界区),即通过一小段代码使进程对共享资源以独占的方式进行访问,让该段代码能以原子操作的方式访问共享资源的一种方法。通过CRITICAL_SECTION结构(临界对象)实
阅读全文
posted @ 2009-05-30 10:10
o(∩_∩)o...
阅读(193)
推荐(0)
摘要:
线程需要通信的情况:• 当有多个线程访问共享资源而不使资源被破坏时。• 当一个线程需要将某个任务已经完成的情况通知另外一个或多个线程时。原子访问:是指线程在访问资源时能够确保所有其他线程都不在同一时间内访问相同的资源。原子操作:指线程运行过程不中不发生中断。1、互锁函数互锁函数的执行方式与CPU平台相关, x 8 6 C P U,互锁函数会对总线发出一个硬件信号,防止另一个C P U访问同一个内存地址。 LONG InterlockedExchangeAdd(PLONG plAddend, LONG Increment); 将变量的值与指定的数相加后将变量值返回(只能为32位的值),返回该变量
阅读全文
posted @ 2009-05-30 10:07
o(∩_∩)o...
阅读(206)
推荐(0)
摘要:
“开始”—〉“程序”—〉“附件”—〉“系统工具”—〉“计划任务”(步骤A操作正确,该窗口中能够看到已经存在一个任务图标)双击“添加任务”->“计划任务”向导->“下一步”,随便创建一个计划任务。然后,双击该新建好的任务图标。会出现该任务的属性。(这时计划任务窗口应该有2个任务图标)。—任务面板->“起始于”和“注释”项可自行改动;—计划面板->填自动关机执行的周期—设置面板->全部设为跟原不可改的那个任务一致。1、定时开机A:进入BIOS界面->选择“Power Management Setup”菜单,进入电源管理窗口。B:在“Automatic Power
阅读全文
posted @ 2009-05-27 10:29
o(∩_∩)o...
阅读(851)
推荐(0)
摘要:
原因是因为诺顿和Google浏览器产生冲突,解决办法:一、在快捷方式下添加 -no-sandbox(如下图:)A: 找到浏览器的快捷方式,右键-》属性B:在快捷方式的exe 后面 加个空格 ,然后添加 -no-sandboxC: 不要将谷歌浏览器设为默认浏览器二、屏蔽诺顿对谷歌浏览器的监控……1、开始->运行->regedit回车2、文件->导出注册表 选择目录保存(以防万一 出问题了再把它导入就回复啦!)3. 编辑->查找(或者CTRL + F) 在弹出的窗口粘贴:或者沿着目录找到:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet
阅读全文
posted @ 2009-05-20 16:29
o(∩_∩)o...
阅读(407)
推荐(0)
摘要:
1、动态提高线程的优先级等级 通过将线程的相对优先级与线程的进程优先级类综合起来考虑,系统就可以确定线程的优先级等级。有时这称为线程的基本优先级等级。系统常常要提高线程的优先级等级,以便对窗口消息或读取磁盘等I / O事件作出响应。 系统只能为基本优先级等级在 1至1 5之间的线程提高其优先级等级,这个范围称为动态优先级范围。 BOOL SetProcessPriorityBoost(HANDLE hProcess ,BOOL DisablePriorityBoost); BOOL SetThreadPriorityBoost(HANDLE hThread,BOOL DisablePr...
阅读全文
posted @ 2009-05-16 14:51
o(∩_∩)o...
阅读(248)
推荐(0)
摘要:
九、程序的优先级 (1)进程优先级 当调用CreatProcess时,可以在fdwCreate参数中传递需要的优先级类, 创建子进程的进程负责选择子进程运行的优先级类。 优先级类 标 识 符 实时 REALTIME _PRIORITY _ CLASS 高 HIGH_PRIORITY _ CLASS 高于正常 ABOVE _ NORMAL _PRIORITY _ CLASS 正常 NORMAL _PRIORITY _ CLASS 低于正常 BELOW _NORMAL _PRIORITY _ CLASS 空闲 IDLE _PRIORITY _ CLASS BOOL SetPr...
阅读全文
posted @ 2009-05-16 14:50
o(∩_∩)o...
阅读(204)
推荐(0)
摘要:
八、对优先级的抽象说明 Windows API展示了系统的调度程序上的一个抽象层,这样就永远不会直接与调度程序进行通信。 Windows 支持的优先级类 优先级类 描 述 实时 进程中的线程必须立即对事件作出响应, 以便执行关键时间的任务。该进程中的线程还会抢先于操作系统组件之前运行。使用本优先级类时必须极端小心 高 进程中的线程必须立即对事件作出响应,以便执行关键时间的任务。TaskManager(任务管理器)在这个类上运行,以便用户可以撤消脱离控制的进程 高于正常 进程中的线程在正常优先级与高优先级之间运行(这是Windows 2000中的新优先级类) 正常 进程中的线程没有...
阅读全文
posted @ 2009-05-16 14:49
o(∩_∩)o...
阅读(232)
推荐(0)
摘要:
六、运用结构环境 环境结构使得系统能够记住线程的状态,这样,当下次线程拥有可以运行的C P U时,它就能够找到它上次中断运行的地方。 Windows实际上允许查看线程内核对象的内部情况,以便抓取它当前的一组 C P U寄存器。若要进行这项操作,只需要调用G e t T h r e a d C o n t e x t函数 BOOL GetThreadContext(HANDLE hThread , PCONTEXT pContext ); 指定一个CONTEXT结构,对某些标志(该结构的ContextFlags成员)进行初始化,指明想要收回哪些寄存器,并将该结构的地址传递给GetTh...
阅读全文
posted @ 2009-05-16 14:48
o(∩_∩)o...
阅读(244)
推荐(0)
摘要:
1、右键——我的电脑——属性——高级——设置——视觉效果——自定义——“在桌面上为图标标签使用阴影”打勾——确定。 2、桌面空白处点右键——属性——桌面——自定义桌面——web——去除“勾选锁定桌面项目”————确定。
阅读全文
posted @ 2009-04-26 16:48
o(∩_∩)o...
阅读(279)
推荐(0)