1. synchronized(同步) - 保证数据(结果)的正确性 - 唯一的资源适合同步 - 同一时间段只用一个程序在运行 - 如:数据库的写操作。
asynchronized(异步) - 加快运行速度 - 互斥的资源适合异步 - 同一时间端多个程序在运行 - 如:数据库的读操作。
2. 程序如何实现
同步实现:● 使用jvm提供的关键字synchronized 配合 Object提供的notify()/wait()方法
● 使用Lock
异步实现:● js - ajax
● java - 多线程
3. 参考实例:http://www.cnblogs.com/benshan/p/3551987.html
http://houlinyan.iteye.com/blog/1112535
相关推荐
在Java编程语言中,同步(Synchronization)与异步(Asynchronization)是两个非常重要的概念,它们对于多线程处理和并发控制有着不可替代的作用。本文将深入探讨这两个概念的区别及其在Java中的具体应用。 #### 一...
* asynchronized(异步的):不使用锁机制,允许多个线程同时访问共享资源。 * volatile(易变的):变量值可以被其他线程改变。 * atomic(原子的):操作不可被打断,能够保证数据的一致性。 * share(共享):多...
- **线程同步**:理解synchronized关键字、wait/notify机制,以及Lock接口的使用。 - **并发编程**:了解并发容器如ConcurrentHashMap,以及ExecutorService、Future、Callable等并发工具类。 4. **Android基础...
在Java中,同步和异步是描述程序执行方式的两个重要概念。 - **同步**:在同步操作中,调用者必须等待操作完成才能继续执行后续操作。这通常意味着调用者需要阻塞直到操作完成。 - **异步**:在异步操作中,调用者...
标签“多线程”强调了Java并发编程的核心概念,如线程的创建、同步、通信和状态管理。例如,`synchronized`关键字用于确保对共享资源的互斥访问,防止数据竞争;`wait()`, `notify()`和`notifyAll()`方法用于线程间...
- **使用`synchronized`关键字(Using the "synchronized" Keyword):**介绍了如何利用`synchronized`关键字来同步方法或代码块,从而避免并发访问导致的问题。 - **使用委托(Using Delegation):**探讨了一种...
3. **同步与互斥**:为了防止多个线程同时访问共享资源,Java提供了`synchronized`关键字、`Lock`接口(如`ReentrantLock`)和`java.util.concurrent`包中的并发工具类,以实现线程间的同步和互斥。 4. **死锁、...
### Java线程的同步与死锁 #### 一、引言 在Java中,多线程编程是一项重要的技术,能够显著提升程序的性能和响应能力。然而,随着线程数量的增加,线程间的同步问题变得越来越复杂。本文将深入探讨Java线程中的同步...
### 大唐JAVA笔试题知识点...- **《Clean Code: A Handbook of Agile Software Craftsmanship》** 以上知识点涵盖了Java基础、面向对象、多线程、异常处理、Web开发等多个方面,对理解和掌握Java技术栈具有重要意义。
- 适用于执行很多短期异步任务的情况。 - **ScheduledThreadPoolExecutor**: - 创建定时任务线程池,支持周期性执行任务。 #### 十五、synchronized关键字的底层原理 - **监视器锁**: - synchronized关键字...
- 实现同步主要通过`synchronized`关键字或显式锁。 #### 51. 启动线程 - 应该使用`start()`方法启动线程,`run()`方法只是简单地执行线程体。 #### 52. 线程进入同步方法 - 当一个线程进入一个对象的一个`...
**1.49 同步和异步的异同** - **同步**:等待某个操作完成后再继续执行。 - **异步**:无需等待某个操作完成即可继续执行。 - 使用场景:同步通常用于简单且快速的操作;异步用于耗时较长的操作。 **1.50 多线程的...
- `synchronized`修饰同步方法,用于控制线程同步。 - `Thread.stop()`和`Thread.suspend()`已被废弃,因为它们可能导致死锁。 47. **`sleep()`与`wait()`的区别** - `sleep()`来自`Thread`类,可以让当前线程...
- `synchronized`关键字:用于线程同步,防止数据不一致性。 - `ExecutorService`和`Future`:管理线程池和异步任务的接口和类。 5. **集合框架**: - `ArrayList`和`LinkedList`:两种不同实现的列表,`...
- 解释了如何使用`synchronized`关键字来创建同步代码块。 - **3.5 嵌套锁** - 探讨了多个锁之间的嵌套关系以及可能产生的问题。 - **3.6 死锁** - 详细分析了死锁的产生原因及其预防措施。 - **3.7 返回到银行...
- 同步可以通过`synchronized`关键字实现。 #### 51. 启动线程的方式 - 应该使用`start()`方法来启动线程,而不是直接调用`run()`方法。 - `start()`方法会创建一个新的线程并调用`run()`方法。 #### 52. 线程...
- `abstract method`可以是`synchronized`,因为`synchronized`用于同步操作,与方法是否抽象无关。 #### 26. 内部类 - **内部类**:定义在另一个类内部的类。 - **Static Nested Class**:静态内部类,不需要外部...
- **同步方法修饰词:** `synchronized`。 - **`stop()`和`suspend()`不推荐使用:** - `stop()`可能导致资源泄露。 - `suspend()`可能导致死锁。 **47. `sleep()`与`wait()`的区别** - **`sleep()`:** - 当前...
- 使用`synchronized`关键字或`Lock`接口来实现线程同步。 50. **启动线程的方法**: - 使用`start()`方法启动线程,`run()`方法不应直接调用。 51. **线程的同步控制**: - 当一个线程进入一个对象的`...