随笔分类 -  NET多线程技术

摘要:不妨,可以先看看java的内存模型,然后再来看后续的英文;效果可能要好一些! http://blog.csdn.net/it_dx/article/details/70045286?locationNum=4&fps=1 先要看这个: https://docs.microsoft.com/en-us 阅读全文
posted @ 2018-01-28 15:39 咕-咚 阅读(232) 评论(0) 推荐(0)
摘要:最近学了点 c# dataflow的一些东西,然后国外有个人,用dataflow来实现了,一个Actor模型; 这里做个比较,算是初识我们的actor模型,然后我们再进一步的深入了解一哈; 看完基本了解actor,但是还是很不透彻~ 阅读全文
posted @ 2017-09-29 14:01 咕-咚 阅读(2582) 评论(0) 推荐(1)
摘要:c# Task.FromResult 的基本用法和实例 This method is useful when you perform an asynchronous operation that returns a Task object, and the result of that Task o 阅读全文
posted @ 2017-09-26 14:09 咕-咚 阅读(2667) 评论(0) 推荐(1)
摘要:c# 中的push和pull两种模式 先写一个占位符............... 阅读全文
posted @ 2017-09-25 14:45 咕-咚 阅读(774) 评论(0) 推荐(0)
摘要:Creating a blocking Queue<T> in .NET 这里的代码来自我们的StackOverflow 中的代码示例,我添加了一些中文注释; 当然这里还有我们的第二个版本的使用; 要锻炼自己写源代码的能力,所以要多看,多学习,看多额,才能写点东西出来的呀; 这样的效果还是挺好; 阅读全文
posted @ 2017-09-21 15:54 咕-咚 阅读(231) 评论(0) 推荐(0)
摘要:c# 实现golang中的channel 阅读全文
posted @ 2017-09-21 15:54 咕-咚 阅读(244) 评论(0) 推荐(0)
摘要:概念: 某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。 产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 单单抽象出生产者和消费者,还够不上是生产者/消费者模式。 该模式还需要有一个缓冲区处于生产者和消费者之间,作为一个 阅读全文
posted @ 2017-09-20 15:29 咕-咚 阅读(8084) 评论(1) 推荐(1)
摘要:最近都在看多线程相关的知识,不太容易理解,而且,都看的是英文的资料,一开始还有点卡顿现象,不过现在过好多了, 其实发现,英文和goolge 还有 stackoverflow 对程序员,很有用,至少我理解的是c#程序员,相当于百度的搜索, 你会发现大多数都是博客园的文章...........然而高质量 阅读全文
posted @ 2017-09-12 11:41 咕-咚 阅读(274) 评论(0) 推荐(1)
摘要:关于spinlock的基本介绍; https://docs.microsoft.com/en-us/dotnet/standard/threading/spinlock 基本使用实例: http://www.c-sharpcorner.com/UploadFile/1d42da/spinlock-c 阅读全文
posted @ 2017-09-06 15:25 咕-咚 阅读(1822) 评论(1) 推荐(1)
摘要:这个古老的话题, 这里是一个大杂烩; 首先让我们看stackoverflow中一个经典的问题: Volatile vs. Interlocked vs. lock 然后连接看答案: https://stackoverflow.com/questions/154551/volatile-vs-inte 阅读全文
posted @ 2017-09-04 16:46 咕-咚 阅读(235) 评论(0) 推荐(0)
摘要:这里我要强调一个概念, 多线程是多线程, 异步编程是异步编程 这两个是有区别的概念; 我可以说多线程天生就要异步的特点;但你不能说多线程成就等同于我们的异步编程; 根不能说异步编程就是我们的多线程。这里不要搞混淆了; 再net中的进化如下: 多线程:Thread =>ThreadPool=> Tas 阅读全文
posted @ 2017-09-02 19:51 咕-咚 阅读(8747) 评论(1) 推荐(0)
摘要:方法有三种,我们直接上代码; 完美。 阅读全文
posted @ 2017-09-02 16:12 咕-咚 阅读(295) 评论(0) 推荐(0)
摘要:直接贴文章好了,这些大神都讲解的很清楚; c# 中的 mutex https://msdn.microsoft.com/en-us/library/system.threading.mutex(v=vs.110).aspx c# 中的 lock monitor mutex Semaphore 的比较 阅读全文
posted @ 2017-08-30 16:00 咕-咚 阅读(679) 评论(0) 推荐(0)
摘要:1) 用户模式,硬件提供支持,速度非常快,但是在 block 的时候消耗 CPU 资源,在未争 用的时候不损失性能 2) 内核模式,操作系统提供支持,速度比较慢,但是很灵活(比如可以设定超时时间, 可以等待一组同步结构都可用的时候继续)并且和用户模式想法的是在 block 的时候可以 不消耗 CPU 阅读全文
posted @ 2017-08-30 09:58 咕-咚 阅读(202) 评论(0) 推荐(0)
摘要:你可以先回顾一下之前的异步操作方式(来自我们stackoverflow的总结):中文翻译:https://codeday.me/bug/20170709/39452.html https://stackoverflow.com/questions/1047662/what-is-asynccallb 阅读全文
posted @ 2017-01-07 14:17 咕-咚 阅读(236) 评论(2) 推荐(0)
摘要:异常的捕获: 结果: 也许你有疑问: 但是:因为:任务没有被取消,并且异常都已经处理完成! 在调用方法中同步等待任务 算了,这个太简单了,有任务的等待,也有任务的取消,....... 代码; 这里还有我们两个静态的方法:可采用 Task 的两个静态方法 WaitAll() 和 WaitAny() 。 阅读全文
posted @ 2017-01-06 16:10 咕-咚 阅读(189) 评论(0) 推荐(0)
摘要:先看直接的代码请求方式地啊; 这里是我们同步方法的实现: 结果:有误差; 接着配合我们的aync 和 我们 await 方式来进行。。。 结果,有误差: 没有把必要花费在等待外部资源的请求的等待中,我们可让一其异步,然后执行我们的主线程的任务; 关于异步,多线程的几个尝试; 1. 一口一口的吃蛋糕和 阅读全文
posted @ 2017-01-06 15:49 咕-咚 阅读(672) 评论(0) 推荐(0)
摘要:c# 并行运算二 阅读全文
posted @ 2016-09-27 20:14 咕-咚 阅读(165) 评论(0) 推荐(0)
摘要:c# 并行运算 1. Parallel.INVOKE() 看实例: 看结果: 2.Parallel.For 看实例: 看结果: 是不是Parallel.For在任何时候都比for要快呢?答案当然是“不是”,要不然微软还留着for干嘛? 看实例: 结果:(结果不是稳定的,你懂得~) 再看代码: 再看结 阅读全文
posted @ 2016-09-27 14:32 咕-咚 阅读(581) 评论(0) 推荐(0)
摘要:某人(不是我写的)写的异步代码;(还请博友们点评哈~) 我们看线程池 结果: A-1 过了就是A-4 则说明主线程(for循环)的执行速度,比子线程执行的速度快,或者说优先级高。(不一定,总体是这样的) 网上还看到了这样的结果: 解释出现这样现象的原因: 醒悟过来:由于被置于ThreadPool中的 阅读全文
posted @ 2016-07-06 12:27 咕-咚 阅读(217) 评论(0) 推荐(0)