随笔分类 -  Parallel Programming

多线程,并行编程
摘要:.NET 4.0 也可以使用asyn await 使用nuget 搜索await即可发现微软官方包,安装导项目就可以使用了。 参考:http://stackoverflow.com/questions/9110472/using-async-await-on-net-4 阅读全文
posted @ 2015-11-09 17:43 碎碎虎 阅读(772) 评论(0) 推荐(0)
摘要:如何:对 Windows 窗体控件进行线程安全调用 线程间操作无效: 从不是创建控件的线程访问它的三种方法 如果使用多线程处理来提高 Windows 窗体应用程序的性能,则你必须确保以线程安全的方式调用控件。 访问 Windows 窗体控件不是本身就线程安全的。 如果有两个或两个以上线程操作控件的状 阅读全文
posted @ 2015-08-13 12:23 碎碎虎 阅读(1300) 评论(0) 推荐(0)
摘要:一、进程/线程间同步机制。临界区、互斥区、事件、信号量四种方式临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)的区别1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。2、互斥量:采用互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被 阅读全文
posted @ 2013-02-18 15:22 碎碎虎 阅读(290) 评论(0) 推荐(0)
摘要:C#中使用Monitor类、Lock和Mutex类来同步多线程的执行C#中使用Monitor类、Lock和Mutex类来同步多线程的执行在多线程中,为了使数据保持一致性必须要对数据或是访问数据的函数加锁,在数据库中这是很常见的,但是在程序中由于大部分都是单线程的程序,所以没有加锁的必要,但是在多线程中,为了保持数据的同步,一定要加锁,好在Framework中已经为我们提供了三个加锁的机制,分别是Monitor类、Lock关键字和Mutex类。其中Lock关键词用法比较简单,Monitor类和Lock的用法差不多。这两个都是锁定数据或是锁定被调用的函数。而Mutex则多用于锁定多线程间的同步调用 阅读全文
posted @ 2013-01-31 14:51 碎碎虎 阅读(255) 评论(0) 推荐(0)
摘要:1、从“最简单”的单例模式说起:publicclassSingleton{privatestaticSingletoninstance=null;privatestaticreadonlyobjectsyncRoot=newobject();privateSingleton(){}publicstaticSingletonGetInstance(){if(instance==null){lock(syncRoot){if(instance==null){instance=newSingleton();}}}returninstance;}} 稍微了解设计模式基础知识的人对上面的代码应该不会陌. 阅读全文
posted @ 2013-01-31 14:49 碎碎虎 阅读(393) 评论(1) 推荐(0)