
计算机编程基础
计算机编程基础
宇龍_
有些白嫖党连个赞都不点甚至直接抄走了说原创,新发布的都写到专栏里吧,哎。
私聊给群号,可进Q群咨询问题。
展开
-
为什么有时候线程数超过CPU内核数会更快呢?
单核CPU上运行的多线程程序, 同一时间只能一个线程在跑, 系统帮你切换线程而已, 系统给每个线程分配时间片来执行, 每个时间片大概10ms左右, 看起来像是同时跑, 但实际上是每个线程跑一点点就换到其它线程继续跑,效率不会有提高,切换线程反倒会增加开销。为什么有时候线程数超过CPU内核数会更快呢?原因是这种程序的单个线程运算量不足以占满CPU一个内核(比如存在大量IO操作,IO比较慢,是......原创 2020-04-06 22:37:55 · 3053 阅读 · 0 评论 -
进程间通信的场景
具体的进程通信方法谷歌百度一大堆,本文就不提了,只举一些进程通信的场景。因为很多情况下对于新手而言缺乏的是实际场景。1、监视进程的状态比如在自己的进程内调用了另外一个程序,而此时我们可能需要等待这个程序执行完毕,那么怎么做呢?2、进程的返回结果比如在windows下,我们的进程要调用cmd.exe来执行某个命令,那么我们在调用cmd之后怎么在进程内直接获取cmd的输出呢?3、进...原创 2018-11-02 22:35:08 · 791 阅读 · 0 评论 -
多线程使用场景
1.不阻塞主线程(UI线程)2.为了更快的速度。主线程专门用来监听请求,子线程专门用来处理请求,可以获得大的吞吐量。web服务3.某种虽然优先级很低的服务,但是却要不定时去做。比如Jvm的垃圾回收。4.某种任务,虽然耗时,但是不耗CPU的操作时,开启多个线程,效率会有显著提高。比如读取文件,然后处理。 磁盘IO是个很耗费时间,但是不耗CPU计算的工作。 所以可以一个线程读取数据,一...转载 2018-10-25 10:58:32 · 2073 阅读 · 1 评论