中易网

JAVA 中的同步机制有什么作用?

答案:2  悬赏:50  
解决时间 2021-01-12 15:45
  • 提问者网友:箛茗
  • 2021-01-12 07:58
JAVA 中的同步机制有什么作用?
最佳答案
  • 二级知识专家网友:一袍清酒付
  • 2021-01-12 08:51
一种是方法前加sychronized
public void sychronized start() {
System.out.println("start");
}

另一种是在代码段之前加sychronized
(sychronized){
。。。。。
}

同步方法(synchronized关键字修饰的方法)可以较好地解决并发问题,在一定程度上可以避免出现资源抢占、竞争条件和死锁的情况,但其副作用是同步锁可导致线程阻塞。这要求同步方法的执行时间不能太长。

这就是所谓的锁机制,你何以使用sychronized(Object obj)锁住某个对象,等你使用完这个对象之后,再进行锁的释放,其他需要该对象的线程才可以执行。
全部回答
  • 1楼网友:白昼之月
  • 2021-01-12 09:08
Java中的同步机制有四种:① ThreadLocal ② synchronized( ) ③ wait() 与 notify() ④ volatile
目的:都是为了解决多线程中的对同一变量的访问冲突
(1)ThreadLocal 保证不同线程拥有不同实例,相同线程一定拥有相同的实例,即为每一个使用该变量的线程提供一个该变量值的副本,每一个线程都可以独立改变自己的副本,而不是与其它线程的副本冲突。
(2)优势:提供了线程安全的共享对象
(3)与其它同步机制的区别:同步机制是为了同步多个线程对相同资源的并发访问,是为了多个线程之间进行通信;而 ThreadLocal 是隔离多个线程的数据共享,从根本上就不在多个线程之间共享资源,这样当然不需要多个线程进行同步了。
(4)使用技巧:需要多个线程之间进行通信,使用同步机制;如果需要隔离多个线程之间的共享冲突,推荐使用 ThreadLocal (线程安全)。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息