
▷--○ WinThread
文章平均质量分 84
yss28
这个作者很懒,什么都没留下…
展开
-
线程术语
可重入函数与线程安全函数一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。 可重入与线程安全并不等同。一般说来,可重入的函数一定是线程安全的,但反过来不一定成立。如果一个函数中用到了全局或静态变量,那么它不是线程安全的,也不是可重入的; 如果我们对它加以改进,在访问全局或静态变量时使用互斥量或信号量等方式加锁,则可以使它变成线程安全的,但此时它仍然是不可重入的,原创 2017-01-04 15:30:09 · 448 阅读 · 0 评论 -
Win32——_beginthread()、CreateThread()、_beginthreadex()
《Win32多线程程序设计》–Jim Beveridge & Robert WienerC runtime library参考:C Runtime Library单线程版本: 当 C runtime library 于 20 世纪 70 年代产生出来时,内存容量还很小,多任务是个新奇观念,更别提什么多线程了。C runtime library 使用数个全局变量和静态变量,这可能在多线程程序中彼此原创 2016-12-28 11:40:11 · 823 阅读 · 0 评论 -
Win32线程——同步机制
《Win32多线程程序设计》–Jim Beveridge & Robert Wiener同步(synchronous):当程序1调用程序2时,程序1 停下不动,直到程序2完成回到程序1来,程序1才继续下去;SendMessage() 根本就像是“直接调用窗口之窗口函数”,除非等该窗口函数结束,是不会回到原调用点的,所以它是同步行为。异步(asynchronous):如果程序1调用程序2后,径自继原创 2016-12-17 16:55:16 · 3408 阅读 · 0 评论 -
Win32线程——优先权
《Win32多线程程序设计》–Jim Beveridge & Robert WienerWin32 优先权是以数值表现的,并以进程的“优先权类别(priority class)”、线程的“优先权层级 (priority level)”和操作系统当时采用的“动态提升(Dynamic Boost)”作为计算基准。 所有因素放在一起,最后获得一个 0~31 的数值。拥有最高优先权之线程,即为下一个将执行起原创 2016-12-16 18:11:30 · 1133 阅读 · 0 评论 -
Win32线程——在某个线程内终止另一个正在运行的线程(1)
《Win32多线程程序设计》–Jim Beveridge & Robert Wiener 对于多线程程序,如果用户企图结束程序(主线程)时,子线程尚未完成工作,怎么办? 结束一个线程,听起来好容易,但是结束程序必须按次序进行,以避免发生 race conditions。让程序依次序进行是非常重要的,特别是在程序要结束之前。结束一个程序就好像拆除一栋建筑物一样,在你以推土机轧平它之前,你原创 2016-12-16 17:35:57 · 5971 阅读 · 0 评论 -
Win32线程——等待另一个线程结束
《Win32多线程程序设计》–Jim Beveridge & Robert Wiener “等待某个什么东西”是线程常常需要做的事。等待是线程的“必要之恶”。 如果你没有等待线程结束就莽撞地结束程序,线程会被系统强制结束掉——在它完成它的工作之前。 由于让线程停工是操作系统的责任,很合理地我们会认为操作系统也有责任让其他线程知道某个线程停工了。Sleep()这个函数要求操作系统中止原创 2016-12-14 21:14:12 · 5479 阅读 · 3 评论 -
Win32线程——在某个线程内终止另一个正在运行的线程(2)(Event对象)
《Win32多线程程序设计》 Win32 中最具弹性的同步机制就属 events 对象了。 Event 对象是一种核心对象,它的唯一目的就是成为激发状态或未激发状态。这两种状态全由程序来控制,不会成为Wait…() 函数的副作用。 Event 对象之所以有大用途,正是因为它们的状态完全在你掌控之下。Mutexes 和 sem aphores 就不一样了,它们的状态会因为诸如WaitForS原创 2016-12-14 00:37:06 · 2775 阅读 · 0 评论