看起来golang和c#比较,似乎
性能不行:
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=plaintexthttps://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go-csharpcore.html
功能不行:
比如channel。go的channel主要是pipe概念拼上个select。c#有Rx.NET,是pipe加上了linq那一堆操作(select、where、Distinct、Skip、Sum等),并且支持线程调整,比go的channel强大很多。
Rx.NET也是微软出的,事实上是linq2.0
再比如协程。go的协程,看起来就是Windows xp里面新加的那个QueueUserWorkItem api。这个api也能被c++调用,微软都扔进legacyapiset里面了。
下面列出的场景是c#全部支持的,每个场景后面给的是c#相关的搜索关键字。go的协程我并不敢说非常熟悉,也许会有个别go也能支持的,但下面大部分场景go应该都不支持。
1.一个线程(协程)能不能等待另外一个协程的返回值?await
2.协程结束能不能回到当前线程?(回到ui线程)await
4.协程出异常了通知调用者?throw
5.协程链。ContinueWith
6.abort协程。CancellationToken
7.协程对线程的对应模型,防止线程创建颠簸?threadpool.setminthreads
8.可不可以自定义, 协程对线程的对应模型?TaskScheduler
9.语法糖,并发若干数目的协程处理集合。parallel LINQ,parallel.for,parallel.foreach。java抄了一个过去,好像叫什么stream。
10.协程first class化并在其上做集合有关的操作。Dataflow。这个是c#做的非常强大的一个功能,提供了协程的二阶操作。互联网常见的限流操作用这个也就是几行代码。
golang看起来性能不行,功能不行,存在价值在哪里?
【 在 gpmn 的大作中提到: 】
: golang,come on
:
--
FROM 123.116.202.*