java并发-多线程方面的思考

2020-08-08T14:28:57
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

这里的“代码”,说的是类里面的一个方法。

1.一个方法有可能会多个线程同时进入

必须牢记这个。头脑中应该一直记住,方法不是一次,一次进入的,而是非常有可能同时多个线程同时进入的。头脑中应该时刻记住。

带着多线程同时进入一个方法的思维惯性去看代码,比较能看清楚有些代码为什么那样写。

2.内存分配是在线程的上下文环境下分配的

所有new操作符都是在一个线程执行时分配的,而不是在单一的main线程上分配的,这个需要牢记。那么,我们就能看出,线程本地分配缓冲的作用了,给一个线程一定的初始空间,让其能够快速分配内存,当用完了之后,也就用完了,只能从全局的堆中分配了。

3.在web环境下,记住tomcat有200个线程,那么我们写的所有代码,所有类的方法,都有可能会被200个线程同时执行。

4.思考一个应用程序同时会有多少个线程执行,具有非常重要的意义。比如web环境下,有多少是tomcat的线程,有多少是开发人员手动创建的线程,有多少是jdk里面的线程池的线程,非常有意思。

5.时刻记住,你的代码能够被什么线程调用,具有非常重要的意义。对于开源框架里面的代码,当初始化,关闭,获得资源的时候,被哪个线程调用,也很有意思。

6.线程的内部产生的异常该怎么捕获?

使用Throwable来进行捕获。

扫一扫关注公众号添加购物返利助手,领红包
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »
因本文不是用Markdown格式的编辑器书写的,转换的页面可能不符合MIP标准。