相关疑难解决方法(0)

线程安全是什么意思?

最近我尝试从一个线程(UI线程除外)访问一个文本框,并抛出异常.它说了一些关于"代码不是线程安全的",所以我最终编写了一个代表(来自MSDN的示例帮助),然后调用它.

但即便如此,我也不太明白为什么所有额外的代码都是必要的.

更新:如果我检查,我会遇到任何严重的问题

Controls.CheckForIllegalCrossThread..blah =true
Run Code Online (Sandbox Code Playgroud)

multithreading definition thread-safety

114
推荐指数
7
解决办法
7万
查看次数

OCPJP考试中的多线程

虽然我找到了答案,但我遇到了一个我很难理解的问题.请看这个并给我一个答案的解释.

public class TestSeven extends Thread {
  private static int x;
  public synchronized void doThings() {
    int current = x;
    current++;
    x = current;
  }
  public void run() {
    doThings();
  }
} 
Run Code Online (Sandbox Code Playgroud)

问题和答案是......哪种说法是正确的?

A.编译失败.

B.在运行时抛出异常.

C.同步run()方法会使类成为线程安全的.

D.变量"x"中的数据受到保护,不会出现并发访问问题.

E. 将doThings()方法声明为static将使类成为线程安全的.

F.在同步(new Object()){}块中包装doThings()中的语句将使该类成为线程安全的.

大胆的一个作为答案.感谢您的回复!

java multithreading

5
推荐指数
1
解决办法
147
查看次数

StringBuffer vs StringBuilder

我正在学习算法实现课程.我的老师提到了StringBuffer和StringBuilder,他说StringBuffer比StringBuilder更安全,因为在线程方面.真的吗?如果是这样,那意味着什么?我查了一下这个问题,很多答案都提到了同步.任何人都可以解释这意味着什么,以及如何使StringBuffer比StringBuilder更安全?

java algorithm stringbuilder synchronized stringbuffer

2
推荐指数
1
解决办法
4027
查看次数