小编Ele*_*ill的帖子

在不同的线程中使用对象是否安全,但不能同时使用?

我到处都读过,如果一个字段由不同的线程同时使用,则需要某种同步,如果只有一个线程使用它,则不需要它.但是,如果它被不同的线程使用,但不能同时使用呢?我们来看一下这样的代码:

Thing thing = new Thing();
Thread t1 = new Thread(new MyRunnable(thing));
Thread t2 = new Thread(new MyRunnable(thing));
t1.start();
t1.join();//Wait for t1 to finish
t2.start();
Run Code Online (Sandbox Code Playgroud)

MyRunnable是:

class MyRunnable implements Runnable {
    //skipped constructor and field "private final Thing thing"
    public void run() {
        thing.someUpdate();
    }
}
Run Code Online (Sandbox Code Playgroud)

安全吗?是否t1可以看到t1所做的所有更新?

java concurrency multithreading

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

标签 统计

concurrency ×1

java ×1

multithreading ×1