2015年10月22日

摘要: 对于任何一个对象来说,他在内存中的第一部分放置的是所有方法的地址,第二部分放着一个索引,他指向CLR中的SyncBlock Cache区域中的一个SyncBlock.什么意思呢?就是说,当你执行Monitor.Enter(Object)时,如果object的索引值为负数,就从SyncBlock Ca 阅读全文
posted @ 2015-10-22 15:55 豆沙包没有肉 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 所谓的阻塞,就是线程能够运行,但是某个条件阻止它的运行,当线程处于阻塞状态时,调度器将忽略线程,不会分配给线程任何CPU时间,直到线程重新进入就绪状态,它才有可能执行操作。 为什么任务会进入阻塞的状态,一般有以下几个原因: 1.通过调用sleep(milliseconds)使任务进入休眠状态,在这种 阅读全文
posted @ 2015-10-22 15:49 豆沙包没有肉 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 操作:waitone() 阻塞当前线程,等待接收信号量。是线程中wait操作,会阻塞当前线程,不占用cpu资源,同时会释放上面的锁资源。 set() 发出信号量。 namespace CaryAREDemo { class Me { const int numIterations = 550; st 阅读全文
posted @ 2015-10-22 15:37 豆沙包没有肉 阅读(191) 评论(0) 推荐(0) 编辑
摘要: semaphore: 保证指定个数的并发线程可以访问临界区。 而 lock/mutex:保证只有一个线程可以访问临界区(被lock住的)的资源或者代码。 namespace MutiThread { /// <summary> /// .net 信号量Semaphore的使用 /// </summa 阅读全文
posted @ 2015-10-22 14:16 豆沙包没有肉 阅读(115) 评论(0) 推荐(0) 编辑

导航