Coding
文章平均质量分 51
zwlstc
what I can not create , what I do not understand
展开
-
对设计模式的小见解
23种设计模式大名鼎鼎,如雷贯耳。但是当我们仔细剖析其中的内涵时,却发现基本上里面的大部分的设计模式都很雷同比如状态机和责任链他们本质上就是在高层模块用相同的代码动态切换不同的状态对象来运行不同的逻辑传统的状态机中,不同的类就代表了不同的状态而责任链其实和状态机很像,但是他不用类来区分状态之间的区别 (一个责任链子中的责任对象可以是同一个子类的对象)而是用基类的某个属性来区分责...原创 2018-12-04 18:36:02 · 193 阅读 · 0 评论 -
为什么c++的指针那么难学?
指针本身是一个很浅显的概念,它就是代表了内存中的一个地址通过这个地址 就能获取这个地址上保存的数据嗯,很简单的道理。但为何写起代码来就感觉被浆糊团团围住?因为语言发明者给刚入门的程序员搞了一个非常不友好的设定两个意思相近但其实很不一样的操作符 却用了同一个符号!在声明一个变量名字是什么类型的时候*这个符号 代表了你声明的这个变量名字 是一个指针当声明完成后,这个名字...原创 2018-12-04 11:55:55 · 1368 阅读 · 0 评论 -
CLR via C# 笔记 ----线程基础
在Windows中,进程是对应用程序需要的资源(内存)的抽象,就好像程序正在独占着这些资源(虚拟内存)一样线程是对运行应用程序的cpu的抽象,就好像这个程序正在独占着这个cpu一样(然而此线程 会被其他线程抢占)在Windows中,进程是十分昂贵的,创建一个进程要花几秒钟的时间,必须分配大量内存且初始化,EXE和DLL文件必须从磁盘上加载,等等。相反,在Windows中创建线程则相对廉...原创 2018-12-20 12:47:01 · 216 阅读 · 0 评论 -
CLR via C# 笔记 ----Task(任务) 1
直接给线程池添加工作项的方式很直接,但是无法得知工作项何时结束,并且不能获得返回值于是,CLR提供了一个Task类封装了工作项以下三种写法某种意义上来说是等价的 //1作为object传递(仅仅是举例的作用),当回调需求一个ojbect参数时,需要额外传递这个参数 ThreadPool.QueueUserWorkItem(DoSth,1); new ...原创 2018-12-20 15:51:11 · 203 阅读 · 0 评论 -
CLR via C# 笔记 ----Task(任务) 2
Task的取消CancellationTokenSource用来取消Task,可以为Task的构造函数传递一个此类的实例。当调用实例的cancel方法时,Task会被提意取消为何说是提意,因为取消是协作式的,也就是说你这边提意了,Task的工作函数里还必须显示的写一点响应逻辑才能真正的取消执行。在工作函数内部,通常在一个循环内,持续调用CancellationTokenSource实例...原创 2018-12-21 00:18:07 · 189 阅读 · 0 评论 -
协程VS多线程 应用场景比对
众所周知 ,多线程除了会给cpu带来切换上下文的开销,还会产生资源竞争,想要用多线程,免不了这里那里加个锁。所以多线程在有些时候并不讨巧。所以,协程出现了,他也可以并发的执行多线逻辑,但完全不会给cpu带来额外负担,且不存在任何资源竞争。看起来,协程可以完美替代多线程了。但其实,协程也只是在特定应用情境下才适用。使用多线程的目的之一是为了不阻塞主线程的迭代循环,让主线程可以顺畅...原创 2019-01-07 10:44:35 · 2504 阅读 · 0 评论