多线程(1)
2019-03-11 本文已影响0人
菜鸟上路咯
多线程的目的是将串行的业务变成并行的,从而降低整套流程的执行时间,对于各个线程执行的是互不干扰的业务时,那是最理想的情况,各个线程都是独立存在,无须考虑关于线程间的资源共享问题。但是更多的情况是使用多线程处理流程中的热点业务,也就是很可能多个线程需要执行相同的业务,往往该业务会依赖于某些资源。倘若每个独立线程都创建并使用独占的资源,那么对于系统的开销就有极大的浪费。于是就需要考虑多线程使用公共的资源以用有限的资源完成尽可能多的产出,此时就必须考虑资源的调度问题,而具体到实现就是线程间的通讯了(通俗点说就是这个坑我占了,你等等,或者我完事了,你来吧)。
对于线程间的通讯,一个是系统层面的通讯,比如申请已处于使用状态的资源是就把申请者转换为等待态等等,暂时不考虑。另一个就是编码层面的通讯了。对于分布式场景下,还得考虑更加复杂稳定的通讯模式