- 博客(7)
- 资源 (1)
- 收藏
- 关注
转载 Win32多线程之我需要锁定数据吗?
很多人不知道如何决定数据是否需要保护,使用同步机制会使程序效率降低,而且它们也不容易使用,但是在某些情况下又非用不可。下面是一些指导方针: 1) 如果你不确定,那么你或许需要一个锁定; 2) 如果你在一个以上的线程中使用同一块数据,那么你必须保护它。我所谓的“使用”,一般而言包括读取,与之作比较,写入,更新,改变,或任何其他操作,只要会用到变量 名称的都算;
2013-12-08 12:42:09 627
转载 Win32多线程之volatile
我相信你一定遇到这样的问题:你把某人的名字和电话号码写到你的通讯录中,数个月之后企图打电话给这个人,却发现资料已经过期了。同样的情况也可能发生在编译器为你产生的程序代码中。 编译器最优化的结果是,设法把常用的数据放在CPU的内部寄存器中,这些寄存器就像你的通讯录一样,数据从寄存器中读出,远比从内存中读出快得多,就好像使你从你的通讯录中读数据,远比从大电话簿中读数据要快得多,当然,如果另一个
2013-12-07 17:52:15 741
转载 Win32多线程之线程优先级层次
线程的优先级层次(Priority Level)是对进程的优先权类别的一个修改,使你能够调整同一个进程内的各线程的相对重要性。一共有七种优先权等级,如下表所示:优先级层次调整值THREAD_PRIORITY_HIGHEST+2THREAD_PRIORITY_ABOVE_NORMAL+1THREAD_PRIORITY_NORMAL
2013-12-07 16:11:45 744
转载 Win32多线程之线程优先级
Win32中优先权的概念,用来决定下一个获得CPU时间的线程是谁,较高优先权的线程必然获得较多的CPU时间。关于优先权的完整讨论其实相当复杂,你可以无分轩轾地给予每一个线程相同的优先权,这可能会使你承担不少麻烦,你也可以明智地使用优先权,使自己能够调整程序的执行次序。例如你可以设定你的GUI线程有较高优先权,使它对于用户的反应能够比较平顺一些,或者你可以改变worker线程的优先权,使它们只在系统
2013-12-07 12:22:08 1483
转载 Win32多线程之通过设立标记来结束线程
Win32标准的做法是在你的程序代码中设立一个标记,利用其值来要求线程结束自己。 这个技术有十分明显的优点,可以保证目标线程在结束之前有安全而一致的状态。其缺点也十分明显:线程需要一个polling机制,时时检查标记值是否为空,以决定是否要结束自己。我们所说的polling机制是指:用手动重置(manual-reset)的event对象。Worker线程可以检查该event对象的状态或是等待它
2013-12-07 11:38:35 659
原创 C++ Builder 常用快捷键
1.选中文本处理: Ctrl + Shift + I 选中的代码向右移动 Ctrl + Shift + U 选中的代码向右移动 Ctrl + K -> O 选中文本转换为小写 Ctrl + K -> N 选中文本转换为大写2.调试: Ctrl + F2 Program Reset
2013-12-03 21:09:18 925
转载 Win32多线程之 利用TerminateThread()放弃一个线程
如果当前工作线程尚未完成,而用户希望终止程序,该怎么办呢?利用TerminateThread()放弃一个线程 这正是Win32程序设计的一般性问题。我如何能够安全地关闭任何执行中的线程呢?最明显的答案就是利用TerminateThread(). BOOL TerminateThread( HANDLE hThread, DWORD dwExitCod
2013-12-01 12:42:08 3551
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人