不好意思,没有PPT哈,小伙伴可以尝试自己总结一下知识要点
是的,因为快速的切换所以人体察觉不出来
看课程资料区
mac:command+optino+v
谢谢小伙伴,一起加油
是的,并发包含并行
可以这么理解,这也是实际情况,两个CPU核可以同时“并行”处理两个任务,同时每个cpu核也要“分时”“并发”地处理连续的任务。
谢谢,我还有两门实战课,里面也有很多大厂真实面试题的详细讲解哈,祝下次面试顺利。
如果你把你的室友和你自己看做是一个整体,即一个进程中的两个线程,那么打游戏和陪女朋友算是两个线程上的任务,这个算是并行;如果你们代表不同的个体,即不同的进程,那就不是并行了。
不知道这么说对不对,还请指教!
多个线程可以在多个CPU中,并没有限制多个线程只能在同一个CPU。
好的,谢谢提醒。
单CPU多线程,是尽力在压榨CPU的使用率,是对的,如果有IO操作,很多线程会休息,如果单线程,那么CPU就休息。如果CPU已经被挤满,那么并不是说
可以用线程池等工具,让任务并行执行
生活中的例子:鱼塘养鱼。比如我们的目标是生产一条鱼,理想的情况是用10个池塘一起养,然后加速10倍。但是养一条鱼这件事难以并行,即便用10个鱼塘,最后也无法加速这条鱼的生长过程,总时间还是不变的,因为从鱼苗、到小鱼、到大鱼这些过程都是异构的,不能用多线程来加速。相反,打字就是同构的,我们有10页文章需要打印,如果用10个人来一起打字,那么速度就可以提高10倍。
一般的http调用就是同步通信,比如用http客户端请求接口并拿到结果,然后对结果进行处理。
而比如用RabbitMQ等MQ就是异步通信,相关代码例子可以看MQ的课程,比如免费课:https://www.imooc.com/learn/1042
本门课是Java并发编程精讲的前置课,可以帮助梳理并发领域的各种重要概念,为后续学习打下基础。
小伙伴你是本门课可以在线看但是不能下载吗?如果是的话,我联系慕课网的工程师帮助你解决。
有的,
并发编程的“基石”——多线程概念建立
思维导图:http://naotu.baidu.com/file/b8a70ff9e7f3af1437594b2d0fb4ebfd?token=11150672c00909cb
用PC端浏览效果更佳