并发编程由来:
早期计算机:从头到尾执行一个程序,
等待一个程序执行完毕才会执行下一个程序,
造成了很多资源的浪费。
操作系统的出现使计算机能同时运行多个程序,
不同的程序在不同的单独的进程中运行一个进程,
一个进程有多个线程从而提高了资源的利用率
串行与并行
串行:一个任务执行完了,才执行下一个任务(看完电视再吃饭)
并行:几个任务同时进行(一边电视一边吃饭)
并发编程目的
1.让程序充分利用计算机资源
2.加快程序响应速度(耗时任务、web服务器)
3.简化异步事件的处理
并发编程的场景
1.任务会阻塞线程,导致后面的代码不能执行:
示例如下
while (i < 100000){
doSomeThing();
}
//while执行完后执行,
//如果doSomeThing耗时非常长
///那么下面这句得等到上述执行完毕后才执行
print("hello");
这个时候如果doSomeThing是个异步方法,
print()立刻就可以执行,
不必等待doSomeThing执行完毕
2.任务间断性执行:日志打印(任何一个人都不想日志和业务代码耦合到一起吧 hahaha)
3.任务本身需要协作执行:比如生产者消费者问题
网友评论