开发者社区> 问答> 正文

java如何实现单线程任务?

最近技术经理提出一个要求,打个比方:不同用户同时访问这个方法(服务),如A用户正在访问,则提示有用户在访问,则不让其他用户访问,意思就是这个服务职能有一个人访问,请教下大家,这个只考虑用代码实现可以实现不?目前我采用的是在数据库做一个字段表示,有人访问就修改状态,这样不能避免异常终止的情况,希望大家能给点宝贵的意见!

展开
收起
小旋风柴进 2016-03-05 12:00:28 3093 0
2 条回答
写回答
取消 提交回答
  • Thread t = new Thread( new Runnable(){ @override public void run(){ //your task } } ).start();
    2019-07-17 18:53:10
    赞同 展开评论 打赏
  • 如果只是单个进程,不用数据库也可以用java.util.concurrent的Semaphore和Lock之类的使用tryLock来实现。存数据库的话,如果恰好是数据库连接原因造成的异常,很有可能后面的服务就运行不了了

    2019-07-17 18:53:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
多IO线程优化版 立即下载