240 发简信
IP属地:上海
  • Resize,w 360,h 240
    java 锁(Lock)

    为什么需要 Lock synchronized 不够用。 效率低:锁的释放情况少、试图获取锁时不能设定超时、不能中断一个正在试图获得锁的线程。 ...

  • Python 日志(logging)模块

    级别什么时候使用数值DEBUG详细信息,一般只在调试问题时使用。10INFO证明事情按预期工作。20WARNING某些没有预料到的事件的提示,或...

  • Resize,w 360,h 240
    重排序 VS 可见性 VS 原子性

    重排序 代码实际执行顺序和代码在 Java 文件中的顺序不一致,代码指令并不是严格按照代码语句顺序执行的,这就是重排序。 重排序的好处:提高处理...

  • volatile 关键字

    是什么? volatile 是一种同步机制,比 synchronized 或者 Lock 相关类更轻量,因为 volatile 并不会发生上下文...

  • Resize,w 360,h 240
    JVM 内存结构 VS Java 内存模型 VS Java 对象模型

    整体上 JVM 内存结构:和 Java 虚拟机运行时区域有关。 Java 内存模型:和 Java 的并发编程有关。 Java 对象模型:和 Ja...

  • 统一处理子线程异常

    方法一(不推荐):在子线程中捕捉。 方法二(推荐):使用 UncaughtExceptionHandler UncaughtExceptionH...

  • Resize,w 360,h 240
    Java 异常体系

    开发人员难以控制的异常 所有继承的 Error 的异常开发人员都难以控制,比如 OOM(内存越界)。当这些异常发生的时候,往往要对代码进行优化。...

  • 正确停止 Java 线程

    原则 使用 interrupt 来通知,而不是强制。 需要停止的线程可能不是别人写的程序,正确的做法是通知别人停下来,而不是强制。因为别人是线程...

  • Java 线程池创建、使用、停止

    JUC 已经提供了一些现成的线程池给开发者使用,但是这些线程池或多或少不能满足具体的业务开发需求,所以在使用线程池的时候,大多是自己创建。 JU...