AtomicInteger是一个很好的解决方案,为多线程应用程序提供计数器吗?

Jac*_*ine 3 java concurrency multithreading android

我有一个Android客户端,它将与服务器建立Http连接.

服务器要求所有Http请求在Http头中提供单调递增的计数器.例如

POST /foo/server
X-count: 43
Run Code Online (Sandbox Code Playgroud)

将启动Http连接的位置:

  1. 用户命令下的内部活动,例如按钮点击
  2. 服务内部(由开始Context#startService)

为了提出计数器值,我打算AtomicInteger在我的Application子类中托管一个.然后,所有代码将从中心位置检索计数.

如果Http连接失败(例如服务器关闭),我需要递减计数器.

你认为AtomicInteger非常适合我的场景吗?

Rev*_*nzo 12

AtomicInteger正是您想要用于此目的的.

  • 但是,您应该注意在具有较低值的HTTP请求之前发送具有较高计数的HTTP请求的情况(例如,在较低计数HTTP请求的线程最终休眠的情况下) (3认同)