Java局部变量线程安全

私人5181

我是多线程的新手,我对这种方法是否线程安全感到困惑,因为我没有在HttpURLConnection conn上做新的事情。 .....................

      protected byte[] someMethod(Authenticator authenticator, String url, boolean doPost) throws Exception {
    try {
      URL aUrl = new URL(url);
      strBldr = new StringBuilder();
      AuthenticatedURL.Token token = new AuthenticatedURL.Token();
      TestConnectionConfigurator connConf = new TestConnectionConfigurator();
      AuthenticatedURL authUrl = new AuthenticatedURL(authenticator, connConf);
      HttpURLConnection conn = authUrl.openConnection(aUrl, token);
      if (!connConf.invoked)
          throw new IOException("failed to invoked");
      String tokenStr = token.toString();
      if (doPost) {
        conn.setRequestMethod("POST");
        conn.setDoOutput(true);
      }
      conn.setRequestProperty("Accept", "application/octet-stream");
      conn.setDoOutput(true);
      conn.connect();

      if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {

          BufferedInputStream in = new BufferedInputStream(
                            conn.getInputStream());

            ByteArrayOutputStream byteArraySt = new ByteArrayOutputStream();
               int counter;
               while ((counter = in.read()) != -1) {
                   byteArraySt.write(counter);
               }
               byte [] bArray = new byte[byteArraySt.toByteArray().length];
               bArray = byteArraySt.toByteArray();


            in.close();
            return bArray;
        }
哈科波·卡佩拉托(Jacopo Cappellato)

作为编写线程安全代码的一般规则,您必须专注于可变的共享状态。局部变量不会共享,因此不必担心。

您的代码应该是线程安全的,但是您应该检查authenticator传递给该方法(因此可以由不同线程共享)的对象是否实际上是线程安全的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

为什么局部变量在Java中是线程安全的

来自分类Dev

局部变量是线程安全的吗?

来自分类Dev

Kotlin局部变量线程安全

来自分类Dev

静态局部变量的线程安全增量

来自分类Dev

线程安全局部变量

来自分类Dev

使用线程安全针对局部变量和全局变量进行Java垃圾收集

来自分类Java

Java实例变量在局部变量内引用。内存,线程安全性和完成

来自分类Java

静态方法和线程安全中的局部变量

来自分类Dev

仅具有局部变量的实例方法的线程安全

来自分类Dev

具有局部变量的全局方法线程安全

来自分类Java

Java中是否有线程组局部变量?

来自分类Dev

在匿名线程的上下文中访问局部变量是否安全?

来自分类Dev

C#并行循环局部变量线程安全信息

来自分类Dev

C ++:是否使用IIFE线程安全初始化静态局部变量?

来自分类Java

局部变量是多余的Java

来自分类Java

Java中的局部变量

来自分类Dev

Java中的局部变量

来自分类Linux

线程局部变量和fs段

来自分类Java

是局部变量方法的线程共享?

来自分类Dev

在OpenMP中重置线程局部变量

来自分类Java

什么是线程中的局部变量?

来自分类Dev

线程局部变量的初始化

来自分类Dev

线程共享局部变量吗?

来自分类Dev

多线程共享局部变量

来自分类Dev

局部变量的安全性

来自分类Dev

Ruby 中的线程局部实例局部变量

来自分类Java

斯卡拉对待“分享”从Java线程不同的局部变量?它是如何工作的?

来自分类Dev

多线程应用程序中的Java垃圾回收以获取局部变量

来自分类Dev

C ++ 11-当我将局部变量作为参数传递给线程时,它是否安全?