随笔分类 - 多线程
摘要:现在在做一个addin的项目。本来只是一个比较简单的玩意,一个新feature的需求使得我有机会搞了一点interprocess的code。虽然coding的复杂度并不大,不过的确加深了关于interprocess sync的理解。note it down。需求:这个addin涉及的application包括两个。原来的行为是:每一次从一个app(app1)通过addin调用另一个application(app2)来完成一部分工作时,都是启动一个新的进程instance,用户抱怨启动速度太慢,并且希望可以reuse已经打开了的app2。但是,在app2中的工作完成之前(return to ap
阅读全文
摘要:参加了一次multithreading的team内部training,做了些note:1. 多核CPU,必然配备对应个数的register组。并且,如果是超线程CPU,比如6核超线程CPU,可以有6*2组register。2. 一个线程,有它自己单独的stack以及TLS。对于一般的单线程程序,因为就一个main主线程,感觉就一个stack,实际只是因为只有一个线程在跑。3. Fiber VS thread (或许需要进一步的总结): 1)如果有Fiber这一级的管理调度,那么它是线程内的。Fiber从属于某一个线程。 2)thread是OS级进行支持的,线程的调度由OS执行,并且现代的OS多
阅读全文
摘要:线程间、进程间的同步是通过称为“信号量”signal的一类对象来实现的。下面是一个来自msdn的natice code world的列表:Name Relative speed Cross process Resource counting Supported platforms Critical Section Fast No No (exclusive access) 9x/NT/CE Mutex Slow Yes No (exclusive access) 9x/NT/CE Semaphore Slow Yes Automatic 9x/NT Event Slow Yes Yes 9x/
阅读全文
摘要:Get it here from codeguru.com
阅读全文
摘要:Threading safety means: multiple threads can call the same method at the same time without corrupting your data/resources如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。 线程安全问题都是由全局变量及静
阅读全文

浙公网安备 33010602011771号