2019独角兽企业重金招聘Python工程师标准>>>

1. 对象逸出(Escape)

构造函数中,当前对象还没初始化完成就暴露this给外部

package com.chstudy.unsafe;import java.util.ArrayList;
import java.util.List;public class EventEscape {private final List<Event> listOfEvents;public EventEscape(EventSource source) {source.registerListener(new EventListener() {@Overridepublic void onEvent(Event e) {doSomething(e);}});listOfEvents = new ArrayList<>();}void doSomething(Event e) {listOfEvents.add(e);}interface Event {}interface EventSource {void registerListener(EventListener listener);}interface EventListener {void onEvent(Event event);}
}    

二、并发使用的类,对成员变量的访问需要同步

package com.chstudy.unsafe;import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;@WebServlet(urlPatterns = "/count.do")
public class UnsafeCountServlet  extends GenericServlet implements Servlet {private Long count = 0L;public Long getCount() {return count;}@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {try {Thread.sleep(50);} catch (InterruptedException e) {e.printStackTrace();}count++;res.getWriter().write(count+"");res.flushBuffer();}}

三、JVM 参数,打印指定方法的汇编指令

-XX:+UnlockDiagnosticVMOptions -Xcomp -XX:+PrintAssembly -XX:CompileCommand=compileonly,*GoalNotifier.setGoal

-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly:开启JIT反汇编
-Xcomp:让虚拟机以编译模式执行代码,使得JIT编译可以立即触发 -XX:CompileCommand=compileonly,*GoalNotifier.setGoal:只反汇编GoalNotifier的setGoal方法

四、

转载于:https://my.oschina.net/chen1988/blog/1845807

多线程编程注意点(持续更新)相关推荐

  1. 实习中遇到值得积累下来的编程习惯(持续更新已结束-实习结束进入正式工作)

    出来实习后遇到很多在编程上的问题.有很多是在编程上的小细节,这些细节有些很关键,有些无关紧要,但是均是值得积累下来并不断坚持下去的好习惯.好方法.所以在此积累下来,并持续更新~ magic numbe ...

  2. 【在线笔试题解题报告系列】网易2017校招内推笔试之编程题【持续更新】

    网易今年把内推笔试放在牛客网上办,然后出了一批编程题. 题目在: http://www.nowcoder.com/test/2252286/summary http://www.nowcoder.co ...

  3. 【netty篇】- 第0章netty网络编程必备知识[持续更新中]~

    一.三大组件简介 Channel与Buffer Java NIO系统的核心在于:通道(Channel)和缓冲区(Buffer).通道表示打开到 IO 设备(例如:文件.套接字)的连接.若需要使用 NI ...

  4. 各种编程资源,持续更新

    QQ群:872144107更多视频以及学习资料诚心分享 备注:有部分视频可能已经失效,抱歉~ 极客学院小程序视频教程: 链接:https://pan.baidu.com/s/15Ysexba8D5Hy ...

  5. 程序设计编程题目(持续更新)

    c语言题目 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,它是这样定义的:"水仙花数"是指一个3位数,它的各位数字的立方和等于其本身,比如,153= 13 +5 ...

  6. js函数式编程最佳实践 - 持续更新

    函数式编程最佳实践 学习文档 函数式编程术语 数组字串处理 function addString(el){return el + "0"; } var newArr = arr.m ...

  7. 前端面试笔试编程题(持续更新中)

    1. 求两个日期中间的有效日期(考虑闰年)(微众银行校招笔试) 如 2015-2-8 到 2015-3-3,返回[2015-2-8 2015-2-9-] 思路:使用毫秒数  一天一天地放进去 // 求 ...

  8. 嵌入式编程技巧(持续更新)

    在操作系统定义全局指针时,在释放内存时一定要注意清指针 以rtthread 举例说明 unsigned char *ptest = null; ptest = rt_malloc(100); if(p ...

  9. 一些通用 编程变量 单词(常用变量名;持续更新...)

    叙述 在编程中,除了与编程需求密切相关的关键变量.函数,还有很多非关键的变量例如:索引.计数.最值等等,变量命名还要求有较高的可读性和整洁性,往往使编程者头疼不已. 在此持续整理一些编程中约定俗成的命 ...

  10. 软件编程学习网站汇总——持续更新中

    持续更新各种国内外关于编程语言学习及讨论的网站,有时间我会添加介绍,不过相信很多网站你们都熟悉了,喜欢的可以收藏,我也留着等以后需要的时候翻阅. 若链接有错误,提醒我下,我来改正.有其他好的站也可以推 ...

最新文章

  1. java note项目_note(java)
  2. 《高性能网站建设指南》学习笔记
  3. mysql 中存储引擎是什么意思_mysql常用的存储引擎是什么
  4. UNIYT关于V S2017,VS2019断点调试卡住的问题
  5. 肝货!你想要的资源这里都有!
  6. C# 特性(Attribute)入门教程
  7. C语言查看文件fp指针位置
  8. wireshark怎么抓包、wireshark抓包详细图文教程,简单介绍(及wireshark与wireshark legacy差别 )
  9. 类与对象的关系 java 1615134802
  10. 网络爬虫之Java基础篇(Ⅱ)
  11. 程序员求生指南:告别大小周,摆脱监视,直奔年终奖!
  12. 揭开源码的神秘面纱,让源码从此无处藏身
  13. L325 如何睡觉
  14. DOS 批处理高级教程精选合编20080331
  15. alpha 冲刺 —— 十分之一
  16. BZOJ2794: [Poi2012]Cloakroom
  17. 机器人出卢安娜飓风_LOL:卢安娜的飓风已经过时?哪些英雄还会出这件装备?...
  18. AE+VS+c#开发颜色符号系统之点值符号化(七)
  19. php连接sqlserver数据库服务器(或者称mssql数据库)的几种方法
  20. XB文件开发详解(上报证监会文件)_入门系列

热门文章

  1. spero性能调优记录
  2. IEEE公布2.5G和5G以太网IEEE 802.3bz标准
  3. numpy 排序, 查询功能
  4. js之数据类型及类型转换
  5. iptables二之防火墙SNAT源地址转换,MASQUERADE地址伪装之DNAT目标地址转换讲解和实验演示...
  6. Python的弱引用
  7. Project2010的新特性
  8. jQuery 1.4单独为某个动画动作设效果
  9. PHP实现多服务器session共享之NFS共享
  10. 微信跳一跳高分系列三:用 adb 破解微信跳一跳小程序