草庐IT

硬件同步

全部标签

java - 访问/写入 boolean 对象是否需要同步

这似乎是一个非常愚蠢的问题。考虑一下:我有一个带有getter和setter的简单boolean对象。现在,这两种方法都非常频繁地从许多线程中调用。我需要同步这个boolean值吗?boolean赋值也是原子操作吗?[更新]:我已经知道AtomicBoolean。我已经有很多不同的解决方案,但我专门为上述2个问题寻找答案和答案的理由。 最佳答案 不,boolean访问不是原子的(在机器代码级别上),尽管它确实“在Java中只需要1个操作”。因此,是的,您确实需要同步boolean值。请参阅thispresentation的幻灯片4-

java - 静态同步函数如何工作?

这个问题在这里已经有了答案:Javasynchronizedstaticmethods:lockonobjectorclass(8个答案)关闭9年前。当一个Java成员需要线程安全时,我们喜欢下面的做法:publicsynchronizedvoidfunc(){...}此语法等同于:publicvoidfunc(){synchronized(this){....}}也就是说,它实际上使用this来获取锁。我的问题是,如果我使用synchronized和static方法,如下所示:classAA{privateAA(){}publicstaticsynchronizedAAgetInst

java - 同步块(synchronized block)和监视器对象

你好有人可以解释一下如果在下面的代码中同步代码会限制对线程的访问。如果是,它与我们使用“this”而不是“msg”作为监视器对象有何不同。publicvoiddisplay(Stringmsg){synchronized(msg){for(inti=1;i 最佳答案 仅当两个线程使用完全相同的msg对象调用此方法时,您编写的方法才会阻塞。如果您在this上进行同步,那么在给定时间只有一个线程能够调用该方法。 关于java-同步块(synchronizedblock)和监视器对象,我们在S

java - 为什么这个同步方法没有按预期工作?

我有一个名为“Account”的类publicclassAccount{publicdoublebalance=1500;publicsynchronizeddoublewithDrawFromPrivateBalance(doublea){balance-=a;returnbalance;}}还有一个叫做ATMThread的类publicclassATMThreadextendsThread{doublelocalBalance=0;AccountmyTargetAccount;publicATMThread(Accounta){this.myTargetAccount=a;}pub

java - 在非最终对象上同步

这个问题在这里已经有了答案:Synchronizingonanobjectinjava,thenchangingthevalueofthesynchronized-onvariable(4个答案)关闭5年前。privatevolatileObjectobj=newMyObject();voidfoo(){synchronized(obj){obj.doWork();}}voidbar(){synchronized(obj){obj.doWork();obj=newMyObject();//假设在某个时间点,一个线程t_bar正在执行bar(),另一个线程t_foo正在执行foo,而t_

java - gwt 序列化策略托管模式不同步

在托管模式下运行我的GWT应用程序(gwt2.0.4)时,调用在远程Tomcat上运行的RPC方法时,出现GWT序列化异常:INFO:GwtRpcEventSrvc:ERROR:Theserializationpolicyfile'/84EC7BA65AF8175BAA99B47877FDE163.gwt.rpc'wasnotfound;didyouforgettoincludeitinthisdeployment?SEVERE:GwtRpcEventSrvc:WARNING:FailedtogettheSerializationPolicy'84EC7BA65AF8175BAA99B

12. STM32——硬件IIC驱动OLED屏幕显示

STM32——硬件IIC驱动OLED屏幕显示OLED屏幕OLED屏幕特点OLED屏幕接线说明OLED屏幕显存OLED屏幕原理OLED屏幕常用指令OLED屏幕字模软件的使用写命令写数据OLED初始化(厂家提供的代码)设置起点坐标全屏填充清屏OLED打开OLED关闭显示字符串显示中文显示黑白图片整合oled.coled.hmain.ccodetab.hOLED屏幕OLED即有机发光管(OrganicLight-EmittingDiode,OLED)。OLED显示技术具有自发光、广视角、几乎无穷高的对比度、较低功耗、极高反应速度、可用于绕曲性面板、使用温度范围广、构造及制程简单等有点,被认为是下一代

java - 您应该同步对 Java 中的属性的访问吗?

这个问题在这里已经有了答案:Shouldgettersandsettersbesynchronized?(4个答案)关闭5年前。我最近偶然发现了一篇标题为Synchronizeaccesstomutablefields的文章.它声称:Forexample,inamulti-threadedenvironment,allgetandsetmethodsformutablefieldsshouldusuallybesynchronizedmethods.Thisincludesprimitivefields.我的问题是为什么?同步getId方法有什么用?或者如果我不同步它会发生什么。例如,

java - Java 中的同步构造是否在内部(以某种方式)使用硬件原语 CAS 操作?

我很难理解synchronized语句和关联的notify()、notifyAll的硬件支持是什么()和wait()方法,出现在每个java对象上。我已阅读并知道如何使用此构造,但我一直假设它们直接映射到硬件原语。当我深入研究有关并发的书籍时,我只读到了硬件直接提供的比较和交换(CAS)操作。似乎这个构造是由JVM本身创建/维护的。如果我的理解是正确的,每个对象都包含一些状态,其中包含有关访问它的线程的信息。这用于定义该对象的监视器并协调多个线程对该对象的访问。但如果是这样的话,如何通过并发访问管理这个状态本身?它肯定必须得到管理,对吗?是CAS吗?如果是CAS,那就意味着只有一种真正

java - 如何正确同步两个线程

这是一个我在学校一直听说的问题,但在我被要求面试之前从来没有理由去解决。提示:使用2个线程按顺序打印"Threadi:Thenumberis'j'"其中j=1:100,i是线程号。线程1只能打印奇数j,线程2只能打印偶数j。编辑j的输出必须排序这是我的尝试,但我没有在面试过程中继续前进。我缺少任何基本部分吗?有什么优化吗?importjava.util.concurrent.Semaphore;publicclassThreadSynchronizationimplementsRunnable{privateintstart;privateSemaphoresemaphore;priv