美文网首页
Java并发(一) -- 初识并发

Java并发(一) -- 初识并发

作者: OakesYa | 来源:发表于2020-04-16 17:50 被阅读0次

什么是并发


        并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行(百度百科)。简化来说就是一段时间内一个cpu上运行着几个程序,而程序之间通过cpu的时间切片切换着执行,保证具体到每个时刻都只有一个程序再运行,由于cpu切片的时间很细,所以对于人类来说感觉程序再同时运行。

并发与并行


        并行是指同时运行,不同于并发的cpu时间切片运行,并行在于多cpu情况下多个cpu同时运行程序,可以参考下Erlang之父 Joe Armstrong的解释图

为什么使用并发


        按照上面并发的说法其实可以得出并发只是更好的利用cpu提高效率,所以再考虑使用多线程的时候需要考虑这一点,并且线程上下文切换以及获取锁等操作本身也需要耗时,所以并不是所有情况多线程就比单线程要好。

        关于锁的耗时优化可以1:cas算法 2:线程池配置合理的线程数

使用案例


        某场景下需要获取一篇文章挂靠的景点信息,目的地信息,作者信息,常规可以依次根据景点ID获取景点信息,目的地ID获取目的地信息,作者ID获取作者信息,但是因为此时三种信息并没有上下依赖关系,所以可以直接多线程获取数据。

相关文章

网友评论

      本文标题:Java并发(一) -- 初识并发

      本文链接:https://www.haomeiwen.com/subject/kwbrvhtx.html