synchronized相关内容

“同步”是什么用Java表示?

我一直在努力学习设计模式。 此网站使用 synchronized 关键字,但我不明白它的作用。 我在网上搜索,发现它与多线程和内存有些关系,但我是机械的工程师并不明白这意味着什么。 有人可以帮我理解线程和 synchronized 关键字吗? 解决方案 C ++中没有 synchronized 关键字。 但是Java中有一个方法它表示以下两件事: 不可能两个同步方法 ..
发布时间:2018-12-26 14:50:47 Java开发

原始类型的易失性或同步?

在Java中,如果变量的大小小于或等于32位,则赋值是原子的,但如果大于32位则不是。 什么(volatile / synchronized)在双重或长期分配的情况下使用会更有效吗? 赞, volatile double x = y; synchronized不适用于原始参数。在这种情况下如何使用synchronized?当然我不想锁定我的类,所以不应该使用 ..
发布时间:2018-12-26 12:57:11 Java开发

synchronized块 - 锁定多个对象

我正在为多个玩家(线程)同时移动的游戏建模。 此时玩家所处位置的信息被存储两次:玩家有一个变量“hostField”,它引用棋盘上的一个字段,每个字段都有一个ArrayList,用于存储当前位于此处的玩家字段。 我对我有冗余信息这一事实并不十分满意,但我发现如果不循环使用大数据集,我就无法避免这种情况。 然而,当玩家从一个领域移动到另一个领域时,我想确保(1)冗余信息保持联系(2)此 ..
发布时间:2018-12-25 20:24:23 Java开发

通过这个与虚拟对象同步

到目前为止,我已经看到了使用synchronized块,但最近我了解到使用虚拟对象更可取。我找到了与此相关的以下主题。 Java同步方法锁定对象或方法? 作为总结,在下面的代码中,两个不同的对象可以不要同时运行addA和addB,因为它们都使用它来锁定。 private int a; private int b; public synchronized void a ..

为什么Java同步不能按预期工作?

我正在试图找出同步方法的工作原理。根据我的理解,我创建了两个线程 T1 和 T2 ,它们将调用相同的方法 addNew ,因为该方法已同步它不应该为一个线程执行for循环的所有迭代,然后执行另一个线程的迭代吗?输出保持不变,有时它会正确打印,有时它会打印T1与T2值混合的值。代码很简单,有人可以指出我做错了什么吗?谢谢。 public class Main { public static ..
发布时间:2018-12-22 18:46:51 Java开发

在函数中通过类名同步将在扩展类中有效吗?

我在基类中有一个方法foo使用Synchronized(类名),以及两个扩展基类的类A和B.如果我从一个实例调用foo而两个不同线程中的B实例将被同步。这是一个示例代码: class BaseClass { void foo(){ synchronized(BaseClass.class) ) //做增量计数 } } A类扩展BaseClass { } B类 ..
发布时间:2018-12-21 21:43:32 Java开发

为什么主要顺序中没有呼叫?

我正在阅读一些关于线程/同步的简单示例,该书声称使用 synchronized 将允许在同一个线程上调用一个线程来访问该方法实例。它确实按照承诺进行了序列化,但它似乎是在同步 来电者的约9/10倍下面是$ c> main 方法。此代码是示例代码,显示没有同步方法的问题。 class CallMe { void call(String msg){ System.out.print(“[ ..
发布时间:2018-12-21 21:39:24 Java开发

Java同步方法...未同步

对于我目前的java练习,我必须从2个不同的Gmail帐户获取邮件。我通过创建我的gmail类的新实例来完成此操作。 gmail类扩展了线程,在其中有一个同步方法readMail(),它获取邮件并打印它。这个readMail方法由run方法在while(true)循环中调用,然后它休眠30秒,这个想法是它每30秒获取一次邮件。但是,synchronized方法似乎不起作用。线程互相中断,并且该方法 ..
发布时间:2018-12-21 21:19:18 Java开发

为什么Thread.interrupt()不能中断试图获取锁的线程

在Thinking in Java一书中写道, Thread.interrupt()无法中断试图获取同步锁的线程,我想知道为什么? 解决方案 只有在声明抛出阻塞操作时才能中断阻塞操作 InterruptedException 。显然, synchronized 块不会声明它,因此在等待获取锁定时无法中断线程。 或者你可以使用显式锁并调用 Lock.lockInterruptibly( ..
发布时间:2018-12-20 23:05:40 Java开发

在java中同步 - 正确使用

我正在构建一个在多进程(Threads)中使用的简单程序。 我的问题还有更多要理解 - 当我必须同步使用保留字时? 我是否需要在任何影响骨骼变量的方法中使用这个词? 我知道我可以把它放在任何非静态的方法上,但我想了解更多。 谢谢! 这是代码: 公共类容器{ // ***数据成员*** public static final int INIT_SIZE = ..
发布时间:2018-12-20 21:11:56 Java开发

同步方法还是使用spring @transactional?

我有一种方法可用于发送电子邮件。我想锁定这个方法,所以每次只有一个线程可以接受它,并且其余的池同时存在。我应该同步方法还是在我的服务层使用spring @transactional PROPAGATION_REQUIRED? //每次使用新线程发送电子邮件 public void sendThroughSMTP(List emails,String subject,St ..
发布时间:2018-12-20 01:33:00 Java开发

在同步块内执行新线程

如果我在同步块中创建一个新线程,该块是否会保持锁定状态,直到线程执行完成为止? 如果没有,那么它何时会被锁定? String sLine; onClick(String line){ synchronized(lock){ sLine = line; new Thread(new Runnable(){ @Override public void run(){ doP ..
发布时间:2018-12-17 10:44:59 Java开发

java中的最终变量和同步块

Java中的最终变量是什么?例如:如果我在函数中写 final int temp; ,那么final关键字的含义是什么? 另外,我什么时候想要使用final变量(作为类变量和函数变量)? 为什么同步块中的变量必须声明为final? 解决方案 基本上它只是意味着你无法改变价值。对于实例变量,您必须在构造函数(或使用变量初始值设定项)中分配一次(并且仅一次)任何最终变量。同步是一个 ..
发布时间:2018-12-12 19:07:02 Java开发

同步,何时使用?

我已经开始学习Java中的并发和线程。我知道同步的基础知识(即它的作用)。从概念上讲,我理解它提供了对Java中多个线程的共享资源的互斥访问。但是当面对像下面这样的例子时,我很困惑,让它同步是否是一个好主意。我知道代码的关键部分应该是同步的,这个关键字不应该被过度使用,否则会影响性能。 public static synchronized List sortA(AClas ..
发布时间:2018-12-12 18:26:05 Java开发