随笔分类 -  多线程

WaitForSingleObject
摘要:函数原型为:DWORD WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds);hHandle为要监视的对象(一般为同步对象,也可以是线程)的句柄;dwMilliseconds为hHandle对象所设置的超时值,单位为毫秒; 当在某一线程中... 阅读全文
posted @ 2014-12-08 18:13 归海一刀
CreateThread 使用不当引起内在泄露? CreateThread 和 _beginthreadex 区别。
摘要:http://www.cnblogs.com/lgxqf/archive/2009/02/10/1387480.html在Win32 API中,创建线程的基本函数是CreateThread,而_beginthread(ex)是C++运行库的函数。为什么要有两个呢?因为C++运行库里面有一些函数使用了... 阅读全文
posted @ 2014-11-05 23:59 归海一刀
window下线程同步之(Event Objects(事件))
摘要:转载自:http://www.cnblogs.com/staring-hxs/p/3666655.htmlEvent 方式是最具弹性的同步机制,因为他的状态完全由你去决定,不会像 Mutex 和 Semaphores 的状态会由类似:WaitForSingleObject 一类的函数的调用而改变,所... 阅读全文
posted @ 2014-11-02 23:06 归海一刀
利用用户级线程提高多线程应用的性能
摘要:该博文转载自:http://www.cnblogs.com/sniperHW/archive/2012/04/02/2429634.html随着处理器往多核的发展,多线程被越来越多的应用到软件的开发中。但是如果没有正确的使用多线程,反而可能会导致软件性能的下降。多线程程序中一个影响程序性能的因素就是同步。对于windows系统来说,最快的同步方案就是critical_section,critical_section基本上可以被认为是一个用户态的同步机制(特别是设定了spincount,只有在自旋超过了spincount次之后任然不能获得锁,才会切入核心态并把当前线程阻塞).但即使是这样,如果在 阅读全文
posted @ 2014-01-15 17:49 归海一刀
COM接口在不同线程中的传递技巧两则
摘要:在多线程程序中使用COM对象真是件令人头疼的事情。当你能够访问一个接口指针的时候,并不意味着你可以调用接口上的方法。我从来没真正搞懂过所谓COM的几种线程模式。问题是,当我试图在一个线程里调用一个COM接口的方法,而这个COM接口是在另一个线程中创建时,从来没有成功过。更糟的是,连错误提示都没有。 用全局接口表实现COM接口在不同线程中的传递 在多个线程中传递接口需要额外的工作,各种书籍上都介绍了所谓Marshal一个接口方法,不过我从来没有使用过。因为有更简单的方法,就是用全局接口表(GlobalInterfaceTable)。 GlobalInterfaceTable允许你在任何地方... 阅读全文
posted @ 2013-05-09 17:34 归海一刀
【转】线程的7种状态及相互转换
摘要:我所知道的原文链接:http://webservices.ctocio.com.cn/java/423/9092423.shtml本文介绍线程的7种状态及相互转换的方法。 今天有同事问到线程的问题,自己突然就有点蒙了,只模糊的记得个大概。 当初学习线程的时候把这7个状态记得比自己名字还熟悉 还把这7个状态编成了一段凄惨而美丽的爱情故事 没想到如今却只能记得个大概 真验证了“好记性不如烂笔头”的真理 还是赶快回忆一下吧 先从图片开始 小小的作下解释: 1、线程的实现有两种方式,一是继承Thread类,二是实现Runnable接口,但不管怎样,当我们new了这个对象后,线程就... 阅读全文
posted @ 2011-11-25 14:41 归海一刀 阅读(230) 评论(0) 推荐(0)
java线程
摘要:看到一篇讲的不错的java线程的文章 引用之:http://www.cnblogs.com/yanng/articles/2162124.html如何创建一个线程? 1、 扩展java.lang.Thread类 2、 实现Runnable接口 Thread类代表线程类,它的两个最主要的方法是: run()——包含线程运行时所执行的代码 Start()——用于启动线程线程特性 一个线程只能被启动一次。第二次启动时将会抛出java.lang.IllegalThreadExcetpion异常线程间状态的转换 新建状态:用new语句创建的线程对象处于新建状态,此时它和其它的java对象一... 阅读全文
posted @ 2011-11-25 14:27 归海一刀 阅读(321) 评论(0) 推荐(0)
java中Thread与Runnable的区别
摘要:在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限,下面看例子: package org.thread.demo; class MyThread extends Thread{ private String name; public MyThread(String name) { super(); this.name = name; } public void r... 阅读全文
posted @ 2011-11-25 13:56 归海一刀 阅读(184) 评论(0) 推荐(0)