UDP中一个包的大小最大能多大

点评

因为UDP数据传输的无连接特性,最简单的UDP数据传输就是一次数据交互一个UDP包搞定,这样就不用管分包问题(因为不像TCP,UDP传输时如果分包则是不能保证顺序的,这会带来很多问题)。所以你一次交互的数据如果太多的话,用UDP实现就很可能并不优雅。

阅读全文 »

synchronized 的实现原理与应用

先来看下利用 synchronized 实现同步的基础:Java 中的每一个对象都可以作为锁。具体表现为以下三种形式。

  • 对于普通同步方法,锁是当前实例对象。
  • 对于静态同步方法,锁是当前类的 Class 对象。
  • 对于同步方法块,锁是 synchronized 括号里配置的对象。
阅读全文 »

volatile 内存可见性和指令重排

Java 中内存可见性

内存可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到
共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量

阅读全文 »