`

关于并发

    博客分类:
  • Java
阅读更多

 

1、学习并发首先要认识到一点:没有阻塞,并发毫无意义。并发解决的是多任务的并行问题。

2、进程:操作系统级别的资源消费者,独立地址空间;

     线程:进程中的“子任务”,无法单独持有系统资源。

3、实现方式:

   ① 实现runnable接口

   ② 继承Thread

   ③ Thread构造器(Thread t = new Thread(new XXX()))

   ④ Executor方式

ExecutorService exec = new Executors.newCachedThreadPool();
exec.execute(new XXX());
exec.shutdown();
ExecutorService exec = Executors.newCachedThreadPool();
Future<String> ft = exec.submit(new XXX());//XXX实现Callable接口
ft.get();//返回XXX的调用结果

 


4、Exception处理类:Thread.UncaughtExceptionHandler接口的实现类可以用来处理线程运行中产生的异常

5、ThreadFactory:对批量的Thread进行预订的设置

6、后台线程:所有非后台线程结束以后,不管后台线程运行到什么地方,JVM都会强制结束后台线程

6、线程协作:

  ① wait -> 挂起 -> notify/timeout -> 执行

  ② 同步(synchronized)

  ③ 使用Lock和Condition

Lock lock = new ReentrantLock();
Condition condition = lock.newCondition();
lock.lock();//获得lock
condition.await();//挂起任务
condition.signal();//唤醒condition上的任务
lock.unlock();//释放lock

   ④ 原子类

7、线程安全的容器

collection 

|----List

|    |----LinkedList   no synchronized

|    |----ArrayList     no synchronized         

|    |----Vector         synchronized

|         |----Stack

|----Set                   no synchronized

Map

|----HashMap          no synchronized

|----HashTable        synchronized 

 

扩展:

多核系统上的 Java 并发缺陷模式

 

 

1
2
分享到:
评论

相关推荐

    关于并发的书籍

    千万级规模高性能、高并发的网络架构经验分享;亿级流量网站架构核心技术,并发编程经典实例

    EPOLL模型:关于并发连接的处理

    ### EPOLL模型:关于并发连接的处理 #### 一、Select 的局限性 在 Linux 内核中,`select` 是一种常用的 I/O 多路复用机制,它允许一个进程监控多个文件描述符(FD),并在这些 FD 就绪(例如可读或可写)时通知...

    数据库PPT关于并发控制

    数据库并发控制是数据库管理系统中的关键组成部分,其目的是确保在多用户环境下,多个事务同时执行时,数据的完整性和一致性不受影响。并发控制的主要任务是防止事务间的不正确交互,如脏读、不可重复读和幻读等现象...

    操作系统原理课件,关于并发处理

    操作系统原理中的并发处理是计算机科学中一个核心的概念,它涉及到多个任务或程序在一段时间内同时进行的执行方式。在并发处理中,我们可以将程序的执行分为两种基本模式:顺序执行和并发执行。 顺序执行是传统程序...

    C++并发编程实践 C++ Concurrency in Action

    - **最佳实践**:分享了一些关于并发编程的最佳实践和技巧。 #### 九、高级线程管理 第九章涉及了一些更复杂的线程管理主题,如线程池、线程优先级调整等。 - **线程池**:介绍了如何使用线程池来管理和复用线程...

    JAVA并发编程实践

    7. **性能调优**:提供了关于并发性能监控和调优的指导,包括分析和解决性能瓶颈的方法,以及如何避免过度使用线程导致的资源浪费。 8. **错误与异常处理**:讨论了在并发环境中如何正确处理错误和异常,确保程序的...

    七周七并发模型高清完整版.pdf

    结合以上提供的信息,可以总结出,这本书是关于并发编程的入门到深入的综合性学习材料,它不仅覆盖了并发编程的理论知识,还可能提供了大量针对Java语言的具体实践案例和技术细节。适合想要全面理解并发模型、提高...

    并发编程(各种脑图资源集合).rar

    这个"并发编程(各种脑图资源集合).rar"文件包含了一系列关于并发编程的Xmind脑图,涵盖了从基础知识到高级概念的广泛内容。让我们逐一深入探讨这些知识点。 1. **Java并发成神之路——JUC全方位详解.xmind** 这个...

    并发编程笔记20190526.docx

    以下是一些关于并发编程的重要知识点: ### 第一章 线程基础、共享与协作 1. **进程与线程**:进程是程序在操作系统中的一个实例,拥有独立的资源;线程则是进程内的执行单元,共享进程资源,通信更高效。 2. **...

    Java编程思想中关于并发的总结

    Java编程思想中关于并发的总结 本文将为您总结Java编程思想中关于并发的知识点,包括并发解决的问题、并发的实现方式、Java的线程机制、线程安全、并发容器等。 1. 并发解决的问题: 并发解决的问题可以分为两种...

    Java并发编程实践(英文非扫描版-带书签目录)

    该书不仅解释了这些新的并发特性,还提供了关于并发的通用知识,使得并发编程不再仅仅是高级用户的专有领域,而成为每一个Java开发者都应当掌握的技能。书籍中涉及的内容广泛,涵盖了从基础概念到复杂场景下的并发...

    qt并发状态机应用实例

    qt中,关于并发状态机,满足两个子状态都结束才能向父状态的下一个状态切换的实例,本人亲测有效。 在用qt状态机的时候,往往会遇到一个问题,就是在实际任务执行中,我们不希望两个并行的任务,其中一个结束,就...

    C++ 并发编程 经典 必看

    标题所提到的"C++ 并发编程 经典 必看"直接表明了文档的中心主题,即C++语言中关于并发编程的知识。这部分内容涉及了如何利用C++进行多线程编程,以及一些并发控制方面的高级技术。在现代编程实践中,能够高效地编写...

    并发专题.zip

    在这个“并发专题.zip”压缩包中,我们可以期待找到一系列关于并发编程的知识点和资源。 并发编程的核心概念包括线程、进程、同步与互斥、死锁、活锁以及饥饿等。下面我们将详细讨论这些关键概念。 1. **线程与...

    java+并发编程实战+资源合集

    JUC是指java.util.concurrent这个jdk自带的包的简称,这个包下有Java5发布的一系列新的关于并发操作的类,极大方便了我们对并发编程的实现。 本资源详细介绍了并发编程,有需要的朋友可以下载学习。

    Python并发:多线程与多进程的详解

    关于并发 在计算机编程领域,并发编程是一个很常见的名词和功能了,其实并发这个理念,最初是源于铁路和电报的早期工作。比如在同一个铁路系统上如何安排多列火车,保证每列火车的运行都不会发生冲突。 后来在20世纪...

    JUC并发编程.rar

    "JUC并发编程.rar"这个压缩包文件包含了关于并发编程的相关案例源码和详细讲解,旨在帮助初学者和经验丰富的开发者深入理解并发编程的核心概念和技术。 首先,让我们来看看并发编程的基本概念。并发是指在一段时间...

    并发编程之一 日常学习笔记

    另外,"HashMap源码解析"(文件"03-01")虽然不是直接关于并发的,但HashMap在并发环境下可能会出现线程安全问题。在并发编程中,不合适的并发操作HashMap可能导致数据不一致或者死循环。了解HashMap的内部实现有助...

    并发进程的程序

    以上就是关于并发进程的一些关键知识点,理解并掌握这些内容对于开发高效、可靠的多线程或分布式应用程序至关重要。在实践中,我们需要根据具体应用场景选择合适的并发模型和同步机制,以达到最优的系统性能和资源...

Global site tag (gtag.js) - Google Analytics