首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程安全和静态子类

线程安全和静态子类
EN

Stack Overflow用户
提问于 2012-12-08 10:29:36
回答 1查看 252关注 0票数 0

首先:我是开源软件的新手。(Apache/ Java / Restletframework)

下面是我的问题:我正在用Restlet框架构建一个应用程序。我不知道我的编码/方法是否线程安全!?有人能告诉我我的编码方式是否正确吗?还是我毫无希望地失败了?

建造:

  • A类将由客户端调用。(其余-请求)
  • A类(路由器)将调用B类
  • B类是我的中央请求处理程序,这个B类调用另一个C类
  • 类C是被请求的实际服务,在本例中,登录服务-服务-

如您所见,登录子类是静态的。这是一个线程安全的结构吗?

问候

A类

代码语言:javascript
复制
public class MyStartApplication extends Application {


//Creates a root Restlet that will receive all incoming calls.

@Override
//public synchronized Restlet createInboundRoot() {    //synchronized?
public  Restlet createInboundRoot() {


    //Create a router that routes each call to a new instance of a Resource.
    Router router = new Router(getContext());

    // First we use MODE_START_WITH to determine the requested destination
    // A TRAPDOOR for all requests for this TEST
    // We reroute it to THE CENTRAL RESTLET-WRAPPER 
TemplateRoute route = router.attach("/testmywrapper/", RestletWrapper.class);
    route.getTemplate().setMatchingMode(Template.MODE_STARTS_WITH);


    // Return the response to caller 
    return router;


}

}

B类

代码语言:javascript
复制
public class RestletWrapper extends ServerResource {

@Get
public JSONObject start()    {

    JSONObject returnObj = null;

    switch(operation){
    case "login":
        returnObj= LoginUser.login(queryparams);
        break;
    }

    Return returnObj
}
}

C类

代码语言:javascript
复制
public class LoginUser {


public static JSONObject login(JSONObject queryparams) throws Exception {
    do some stuff
    return object
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-08 10:57:43

如果多个线程访问某些共享状态,则线程安全性可能会出现问题。

除非隐藏在“做一些事情”后面的代码使用静态字段或单线程,否则不会出现线程安全问题:所有变量都是登录方法的本地变量,因此在线程之间不共享。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13776622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档