- 主题:12代的评测出来了没有?
这年代不用关心线程了,现代软件都改async/await了,一个线程拆成无数的task,task in queue的自动往空闲能效核上调度就行
不过老鱼你好像对async/await比较排斥,哈哈
【 在 hgoldfish 的大作中提到: 】
: 那 linux 呢?我不用 windows,比较关心 linux 会不会把线程调度到能效核上面。
:
--
FROM 123.116.196.*
我试过在手机上跑计算密集型任务,用的xamarin+c#,task们跑在4大核4小核的安卓机上,直接占满所有核,不用操心调度情况。
【 在 leadu 的大作中提到: 】
: 这年代不用关心线程了,现代软件都改async/await了,一个线程拆成无数的task,task in queue的自动往空闲能效核上调度就行
: 不过老鱼你好像对async/await比较排斥,哈哈
--
FROM 123.116.196.*
我细想了一下,执行单元三层调度,进程、线程和协程。进程其实没有调度这事,协程以一堆小任务为主,执行时间短。这俩都没有绑定小核的问题
线程虽然时间长,但你自己不做绑定,os可以随意迁移线程的,至少Windows可以
所以你这个担心是没有来由的
【 在 hgoldfish 的大作中提到: 】
: 有没有人评测禁用能效核以后的多核性能。
: 我现在需要用满全核心的就编译和跑虚拟机两件事。前者估计会出现大核等小核编译完才能链接的麻烦。而后者,虚拟机分配给小核,那要坑死人的。
: ps: 你是不是搞错了。12600k 才 6+4 核,能打 12c24t 的 5900x? 不可能吧?
: ...................
--
修改:leadu FROM 123.116.196.*
FROM 123.116.196.*
跟锁没有关系,你把线程和async/await 搞混了
async/await 的都是一堆小执行单元,各个核上的线程池随机线程挑一个task去执行。
即便有同步问题,一半最多也就多等个几秒钟
【 在 hgoldfish 的大作中提到: 】
: 你这个想法很好。但是要改动软件。暂时是不可能的。
: 而且 async/await 不能自动在核心间分派。说明你对 async/await 的理解不深入啊。协程之间仍然需要同步。或者用消息队列或者用协程锁。或者程序员手动,或者编程语言帮你搞定。总之都是要开锁的。async/await 并非银弹。
:
--
FROM 123.116.196.*
三个不同的方面
1.同步问题绝大部分都在几秒之内完成,主贴的问题不受同步影响,最多耽误几秒而已
2.你对协程同步的了解还是线程级别的,所以上一个帖子说你还不太分得清线程和协程
3.举例说明现在协程对于同步问题的标准做法是:
如果用锁,协程a,b同时访问共享资源s,
a先获得锁L,进行操作s。
b此时在锁L上await。协程b因此终止。
a操作完成,退出锁L,继续执行
锁L创建协程c,继续执行b后续操作
协程c是哪个核执行就没准了,反正是能者多劳
【 在 hgoldfish 的大作中提到: 】
: 你这理解严重不对。
: 你应该想想,假如两个 async 函数被分派到两个线程并行执行了。而它们又访问了同一个变量。要怎么办?
: 有四种解决方案:
: ...................
--
FROM 123.116.196.*
100次同步是100个协程,,各个核上的线程随机得到到这些协程,就没有太多的大小核调度问题了
【 在 hgoldfish 的大作中提到: 】
: 一次同步几秒,一百次同步呢?
: 你先别怀疑我在协程这个领域的水平和研究深度。
: 协程同步还是得用锁的话,其实跟线程是没什么区别的。应用场景和坑点也没有区别。大体是落后的方式。
: ...................
--
FROM 123.116.196.*
很多人刚开始接触协程确实会有“goto的语法糖”这种解读,特别是有些语言对这个支持的实在差,比如c、go。目前对协程支持最好的是c#,完全把协程first class化。
协程虽然不是os调度的单位,但是它可以被线程池中的线程peek。在随机peek的过程中完成了负载均衡
【 在 lvsoft 的大作中提到: 】
: 协程压根就不是os调度的单位。
: 协程本质上就是个高级一点的goto的语法糖而已。
:
--
FROM 123.116.196.*
不懂就别参与讨论了
【 在 somebody 的大作中提到: 】
: 你说的协程是线程,你说的线程是进程,
:
--
FROM 123.116.196.*
你说的缺点是指多占一点点时钟周还是同步比线程还复杂一点?
反正都不影响可以在大小核上负载均衡的结论
现在是潮流,各个语言都在转用。下面会有越来越多的程序全部使用,使用协程后不受用户大小核和os影响
【 在 hgoldfish 的大作中提到: 】
: 协程可以作为(用户空间多核)调度的单位。但是是有代价的。
: 我说你对协程的理解不到位,不是说你对协程的优点没理解到位,而是说你对协程的缺点理解没到位。
: 不信你讲一下协程有什么缺点。
: ...................
--
FROM 123.116.196.*
没有,这块c#抄的java
【 在 myspam 的大作中提到: 】
: c#现在有多继承了吗
:
--
FROM 123.116.196.*