java 同步机制

问题描述

在使用synchronized同步的时候,线程被阻塞,进入等待状态,在等待的时候线程会自己停止吗?若会,那么相关的信息不就丢失了吗?

解决方案

不会停止,线程是在等待唤醒,当被锁的对像释放锁以后,等待的线程就会被唤醒,当然相关的信息也不会丢失的。

时间: 2024-10-24 01:05:27

java 同步机制的相关文章

探索Java同步机制

本文将从两个方面进行阐述: 使用 C++ 语言来描述 Monitor Object 设计模式.Java 对于这样一个典型的 模式做了很好的语言层面的封装,因此对于 Java 的开发者来说,很多关于该模 式本身的东西被屏蔽掉了.本文试图使用 Native C++ 语言,帮助读者从本质上 对 Monitor object 设计模式有一个更全面的认识. 结合 C++ 版本的 Monitor Object 设计模式,引领读者对于 Java 同步机制 有一个更深刻的认识,帮助读者正确有效地使用 Java

Java同步机制浅谈――synchronized对代码作何影响?

Java对多线程的支持与同步机制深受大家的喜爱,似乎看起来使用了synchronized关键字就可以轻松地解决多线程共享数据同步问题.到底如何?――还得对synchronized关键字的作用进行深入了解才可定论.总的说来,synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块.如果再细的分类,synchronized可作用于instance变量.object reference(对象引用).static函数和class literals(类名

Java同步机制:sychronized对代码影响

Java对多线程的支持与同步机制深受大家的喜爱,似乎看起来使用了synchronized关键字就可以轻松地解决多线程共享数据同步问题.到底如何?――还得对synchronized关键字的作用进行深入了解才可定论. 总的说来,synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块.如果再细的分类,synchronized可作用于instance变量.object reference(对象引用).static函数和class literals(类

Java线程机制(四) 同步方法和同步块

在之前例子的基础上,我们增加新的功能:根据正确与不正确的响应来显示玩家的分数. public class ScoreLabel extends JLabel implements CharacterListener { private volatile int score = 0; private int char2type = -1; private CharacterSource generator = null, typist = null; public ScoreLabel(Chara

JAVA多线程机制之同步与互斥

一个多线程的程序,两个或者多个线程可能需要访问同一个数据资源.这时就必须考虑数据安全的问题,需要线程互斥或者同步. 线程的互斥 当多个线程需要访问同一资源时,要求在一个时间段内只能允许一个线程来操作共享资源,操作完毕后别的线程才能读取该资源,这叫线程的互斥.我们需要使用synchronized来给共享区域加锁,确保共享资源安全. 如果一个线程调用了某个对象的synchronized方法,它在这个方法运行完之前不会被别的线程打断,这就是线程的同步机制.一般将共享资源放在这个同步方法内部,这样就保证

《深入解析Android 5.0系统》——第6章,第6.3节Android Java层的同步机制

6.3 Android Java层的同步机制 深入解析Android 5.0系统 Java语言和C/C++语言不一样,Java语言中提供了同步关键字synchronized来支持线程间的同步操作. 6.3.1 同步关键字synchronized synchronized关键字最常见的用法是保护一段代码,如下所示: class Foo implements Runnable { private String mLock; public void lockedMethod() { ...... sy

Java线程机制(五) 等待与通知机制

在之前我们关于停止Thread的讨论中,曾经使用过设定标记done的做法,一旦done设置为true,线程就会 结束,一旦为false,线程就会永远运行下去.这样做法会消耗掉许多CPU循环,是一种对内存不友好的行为. java中的对象不仅拥有锁,而且它们本身就可以通过调用相关方法使自己成为等待者和通知者. Object对象本身有两个方法:wait()和notify().wait()会等待条件的发生,而notify()会通知正在 等待的线程此条件已经发生,它们都必须从synchronized方法或

Java线程机制(三) synchronized和volatile的使用

现在开始进入线程编程中最重要的话题---数据同步,它是线程编程的核心,也是难点,就算我们理解了 数据同步的基本原理,但是我们也无法保证能够写出正确的同步代码,但基本原理是必须掌握的. 要 想理解数据同步的基本原理,首先就要明白,为什么我们要数据同步? public class CharacterDisplayCanvas extends JComponent implements CharacterListener { protected FontMetrics fm; protected ch

多线程-synchronized java “同步”

问题描述 synchronized java "同步" 在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行.synchronized既可以加在一段代码上,也可以加在方法上. 知道synchronized是干什么的了,但还是不理解"同步"二字表示什么意思?与其作用关联不到一起: synchronized是用来控制线程不能同步的,多个线程不能同时执行某段代码的步骤,应该是这样理解