restful 的线程安全问题

原创 2012年03月29日 14:26:58
package com.ws.service.syn;


import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;


@Path("counter")
public class Counter {


public int counter = 0;
@GET
@Path("/count")
public String getCount(){
counter++;
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return String.valueOf(counter);
}
public int get(){
return counter;
}
public void set(int num){
this.counter = num;
}
@GET
@Path("/hello")
public String hello(){
return "xjiewenbo";
}
@GET
@Path("/{num}")
@Produces("text/plain")
public String getCounter(@PathParam("num")String num){
set(Integer.parseInt(num));

try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return String.valueOf(get());
}

}


public static void main(String[] args) throws IOException {
        URI ServerURI=UriBuilder.fromUri("http://localhost/").port(9999).build();
    startServer(ServerURI);
        System.out.println("服务已启动,请访问:"+ServerURI);
    }    

    protected static SelectorThread startServer(URI serverURI) throws IOException {
        final Map<String, String> initParams = new HashMap<String, String>();
        initParams.put("com.sun.jersey.config.property.packages","com.ws.service.syn");
        System.out.println("Grizzly 启动中...");
        SelectorThread threadSelector = GrizzlyWebContainerFactory.create(serverURI, initParams);     
        return threadSelector;
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

servlet线程安全问题的详解

摘 要:介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍。...
  • after_you
  • after_you
  • 2017年01月07日 13:28
  • 285

Java多线程安全问题及解决方案

Java多线程安全问题及解决方案 一、问题引入 通过最常见的多窗口售票问题引入线程安全的问题。代码如下: 注:这里使用Runnable接口来实现线程,这样做是为了共享代售票这个资源,如果我们使用继承T...
  • OONullPointerAlex
  • OONullPointerAlex
  • 2016年03月16日 22:17
  • 1524

多线程_线程安全问题的产生原因分析

package cn.itcast_09; /* * 如何解决线程安全问题呢? * * 要想解决问题,就要知道哪些原因会导致出问题:(而且这些原因也是以后我们判断一个程序是否有线程安全问题的...
  • L1585931143
  • L1585931143
  • 2017年03月12日 20:06
  • 615

什么情况下会有线程安全问题

Q:什么情况下会有线程安全问题 A:当某个实现多线程的线程类中有实例变量时 ps:有状态,无状态对象是什么概念 有状态就是有数据存储功能。有状态对象(Stateful Bean)...
  • feicongcong
  • feicongcong
  • 2017年08月21日 01:12
  • 831

关于java线程安全问题

线程:负责一个进程中的代码执行。线程是进程中的一个执行路径。 线程安全问题出现的根本原因: 1. 存在着两个或者两个以上的线程。 2. 多个线程共享了着一个资源, 而且操作资源的代码有多...
  • q739404976
  • q739404976
  • 2017年01月14日 16:03
  • 131

如何解决线程安全问题

 有2种解决方法。 第一,是采用原子变量,毕竟线程安全问题最根本上是由于全局变量和静态变量引起的,只要保证了对于变量的写操作要么全写要么不写,就可以解决线程安全,定义变量用sig_atomic...
  • u012437660
  • u012437660
  • 2016年04月18日 17:15
  • 1142

线程同步:解决线程不安全问题

当多个线程并发访问同一个资源对象时,可能会出现线程不安全的问题,比如现有50个苹果,现在有请三个童鞋(小A,小B,小C)上台表演吃苹果.因为A,B,C三个人可以同时吃苹果,此时使用多线程技术来实现这个...
  • caidie_huang
  • caidie_huang
  • 2016年10月07日 12:30
  • 1578

三层框架开发时,什么时候会出现多线程安全问题

如题,三层框架开发时,什么时候回出现多线程安全问题? 这个问题也是困扰了我很长时间的一个 1、mvc框架采用struts2,由于action可以配置成多实例,所以action不存在现成...
  • zhoulenihao
  • zhoulenihao
  • 2014年09月22日 11:15
  • 2053

Android线程安全问题总结

线程安全的定义线程安全:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的...
  • u010321471
  • u010321471
  • 2017年02月17日 15:52
  • 1265

线程安全问题一定是出现在共享数据上

共享数据的特点 1、能被所有线程访问 2、同一时间只能被一个线程访问         ps:threadlocal主要是为了解决这个问题,使每个线程有它自己的一份数据。 3、修改对其它线程可见    ...
  • qq_26222859
  • qq_26222859
  • 2016年03月25日 21:01
  • 745
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:restful 的线程安全问题
举报原因:
原因补充:

(最多只允许输入30个字)