发表于: 2017-12-21 23:23:16

1 539


今天做的事情:


               上午还是复习了一下任务知识点,开始复盘评审。总的来说,还可以,师兄提的问题,都打出来了。开发流程都了解的差不多,所以是过了。所以要开始设计表等等。


               看了一些多线程的东东。


               1、避免阻塞(异步调用) 

单个线程中的程序,是顺序执行的。如果前面的操作发生了阻塞,那么就会影响到后面的操作。这时候可以采用多线程,我感觉就等于是异步调用。这样的例子有很多: 

ajax调用,就是浏览器会启一个新的线程,不阻塞当前页面的正常操作; 

流程在某个环节调用web service,如果是同步调用,则需要等待web service调用结果,可以启动新线程来调用,不影响主流程; 



                   2、避免CPU空转 

以http server为例,如果只用单线程响应HTTP请求,即处理完一条请求,再处理下一条请求的话,CPU会存在大量的闲置时间 

因为处理一条请求,经常涉及到RPC、数据库访问、磁盘IO等操作,这些操作的速度比CPU慢很多,而在等待这些响应的时候,CPU却不能去处理新的请求,因此http server的性能就很差 

所以很多web容器,都采用对每个请求创建新线程来响应的方式实现,这样在等待请求A的IO操作的等待时间里,就可以去继续处理请求B,对并发的响应性就好了很多 

            


                    3、提升性能 

在满足条件的前提下,多线程确实能提升性能 

打一个比方,多线程就相当于,把要炒的菜放到了不同的锅里,然后用不同的炉来炒,当然速度会比较快。本来需要先炒西红柿,10分钟;再炒白菜10分钟;加起来就需要20分钟。用了多线程以后,分别放在2个锅里炒,10分钟就都炒好了 



                   多线程编程,模型复杂,容易发生冲突,必须用锁加以隔离,同时,又要小心死锁的发生。



                 看了maven的父模块。其余的子模块需要在父模块的pom里面加modules参数。


                 看了wiki上的做接口文档的流程




遇到的问题:


                    无



收获:


                 复盘评审通过,开始方案设计,明天和小伙伴一起讨论,看了下多线程和maven模块,还有一些零散的东西、





返回列表 返回列表
评论

    分享到