当前位置:首页 > 资讯 > 正文

线程同步代码块和同步方法的使用

线程同步代码块和同步方法的使用

解决线程共享同操作的数据的安全性。(线程安全)

synchronized(同步监视器){

// 需要被同步的代码

}

1.操作共享数据的代码,即为需要被同步的代码。—>不能包含代码多了,也不能包含代码少了。

2.共享数据:多个线程共同操作的变量。比如:车站卖的票的数量就是共享数据。

3.同步监视器,俗称:锁,任何一个类的对象,都可以充当锁。

--要求:多个线程必须要共用同一把锁。

--在实现Runnable接口创建多线程的方式中,我们可以考虑使用this充当同步监视器。

如果操作共享数据的代码完整的声明在一个方法中,我们不妨将此方法声明同步的。

@Override

public void run(){

show();

}

private synchronized void show(){ //同步监视器:this

// 需要被同步的代码

}

private static synchronized void show(){ //同步监视器:windows.class

// 需要被同步的代码

}

1.同步方法仍然涉及到同步监视器,知识不需要我们显示声明。