`

Java线程:线程的同步-同步块

 
阅读更多

Java线程:线程的同步-同步块

对于同步,除了同步方法外,还可以使用同步代码块,有时候同步代码块会带来比同步方法更好的效果。
追其同步的根本的目的,是控制竞争资源的正确的访问,因此只要在访问竞争资源的时候保证同一时刻只能一个线程访问即可,因此Java引入了同步代码快的策略,以提高性能。
在上个例子的基础上,对oper方法做了改动,由同步方法改为同步代码块模式,程序的执行逻辑并没有问题。


注意:
在使用synchronized关键字时候,应该尽可能避免在synchronized方法或synchronized块中使用sleep或者yield方法,因为synchronized程序块占有着对象锁,你休息那么其他的线程只能一边等着你醒来执行完了才能执行。不但严重影响效率,也不合逻辑。
同样,在同步程序块内调用yeild方法让出CPU资源也没有意义,因为你占用着锁,其他互斥线程还是无法访问同步程序块。当然与同步程序块无关的线程可以获得更多的执行时间。

本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/221922

分享到:
评论

相关推荐

    java多线程编程总结

    Java线程:线程的同步-同步块 Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java...

    Java多线程编程总结

    Java线程:线程的同步-同步块 Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上)...

    java多线程笔记

    Java线程:线程的同步 33 一、 同步方法 35 二、 同步块 36 三、 volatile关键字 38 四、 使用synchronized关键字要注意以下四点 39 五、 关于同步和锁定的一些问题 41 Java线程:并发协作-线程的交互 47 Java线程:...

    Java 线程总结

    Java线程:线程的同步-同步块 Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java...

    java线程详解

    八、线程同步小结 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:volatile关键字 Java线程:新特征-线程池 一、固定大小的线程池 二、单任务线程池 三、可变尺寸的线程池 四、延迟连接池 五、...

    java线程同步java线程同步

    java线程同步java线程同步java线程同步

    java实验实验报告 add 实验一:多线程/2.Runnable接口. 实验八:JDBC数据库编程二-存储过程

    重命名 实验三多:线程同步与协作:生产者与消费者 为 实验三:多线程同步与协作:生产者与消费者 实验九:使用jdbc存取大文本 add 实验九:使用jdbc存取大文本. 实验二:多线程打字游戏 add 实验二:多线程...

    JAVA线程高级-线程按序交替执行

    然而,在某些场景下,我们可能需要控制线程的执行顺序,确保它们按照特定的顺序交替运行,这在并发编程中被称为线程同步或线程协调。Java提供了一些高级特性来实现这样的需求,比如`Thread`类、`synchronized`关键字...

    Java线程:volatile关键字

    Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。volatile 变量的同步性较差,但它有时更简单并且开销更低。volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized ...

    JAVA 线程实现数据库的主从同步更新

    在Java编程环境中,...总之,使用Java线程实现数据库主从同步更新是一种常见且实用的技术手段,它涉及到多线程编程、数据库操作、事务管理等多个方面。理解和掌握这些知识点对于开发高可用性的分布式系统至关重要。

    学习多线程之一:线程通信--利用事件对象.zip_线程通信

    本教程将聚焦于利用事件对象进行线程间的通信,这是实现多线程同步的一种常见方法。 事件对象,通常称为信号量或事件标志,在Windows API中,它是一个内建的同步机制,允许线程等待特定事件的发生,或者通过设置...

    JavaMultiThreadingExamples:带有中文注释的基本Java多线程示例

    3- Java多线程:同步 4- Java多线程:锁定对象 5- Java多线程:线程池 6- Java多线程:倒计时闩锁 7- Java多线程:生产者-消费者 8- Java多线程:等待并通知 9- Java多线程:低级生产者-消费者 10- Java多线程:可重...

    Java多线程-同步机制解决线程安全问题方式一:同步代码块

    总结来说,Java中的同步代码块是一种有效的解决线程安全问题的手段,通过限制对共享资源的并发访问,可以保证数据的一致性和线程的安全性。然而,过度使用同步可能会降低程序的性能,因此需要合理设计同步范围,确保...

    MultithreadingJava:来自Cave of Programming http的John Purcell的Java多线程课程代码

    3- Java 多线程:同步 4- Java 多线程:锁定对象 5- Java 多线程:线程池 6- Java 多线程:倒计时锁存器 7- Java 多线程:生产者-消费者 8- Java 多线程:等待和通知 9- Java 多线程:低级生产者-消费者 10- Java 多...

    JAVA多线程总结

    **五、Java线程:线程的同步与锁** - **同步**:防止多个线程同时访问共享资源,如`synchronized`关键字用于同步方法或同步块。 - **锁**:包括内置锁(监视器锁)和显式锁(如ReentrantLock),用于控制对共享资源...

    线程同步(synchronized)1---马克-to-win java视频 java视频

    线程同步(synchronized)1---马克-to-win java视频 java视频

    java多线程同步问题

    多线程注意:wait()方法的调用要有判定条件常用 while () obj.wait(timeout, nanos); ... // Perform action appropriate to condition } synchronized会影响共享数据,但对其他语句的执行不会有规律了!

    Java线程间的通信----生产者消费者模型

    2. **线程同步机制**:在Java中,线程同步主要有以下几种方式: - `synchronized`关键字:用于锁定代码块或方法,确保同一时间只有一个线程执行。 - `wait()`和`notify()`/`notifyAll()`:这两个方法位于`Object`...

Global site tag (gtag.js) - Google Analytics