`
lvwenwen
  • 浏览: 958517 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

多线程并发(java编程思想笔记)

阅读更多

 

1.Executor,java.util.concurrent包中的执行器(Executor),ExecutorService,CachedThreadPool为每个任务创建线程,SingleThreadExecutor

  FixedThreadPool使用了有限的线程集来执行所提交的任务,sleep()会抛出InterruptedException异常

 

2.后台线程:是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分,因此当所有的非后台线程结束的时候,

  线程就终止了,同时会杀死进程中所有的后台线程,只要有任何的非后台线程在运行,程序就不会终止

 

1.Executor,java.util.concurrent包中的执行器(Executor),ExecutorService,CachedThreadPool为每个任务创建线程,SingleThreadExecutor

  FixedThreadPool使用了有限的线程集来执行所提交的任务,sleep()会抛出InterruptedException异常

 

2.后台线程:是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分,因此当所有的非后台线程结束的时候,

  线程就终止了,同时会杀死进程中所有的后台线程,只要有任何的非后台线程在运行,程序就不会终止

 

3.共享资源一般是以对象形式存在的内存片段,,用synchronzized关键字不能试做获取锁并且最终获取锁会失败,或试做获取锁一段时间,然后放弃他,要实现这些,必须使用concurrent类库

 

4.原子操作需要同步控制

 

5.模版方法:他的一些功能在基类中实现,并且其一个或多个抽象方法在派生类定义.

6.ThreadLocal创建和管理线程本地存储由java.lang.threadlocal

7.线程的状态:新建,就绪,阻塞,死亡

8.死锁:某个任务在等待另一个任务,而后者在等待另外一个任务,一个任务之间相互等待的连续循环

 

1.volatile:如果多个任务在同时访问某个域,那么这个域就应该是volatile,否则这个域就只能经由同步来访问

2.理解原子性与易变性,原子操作:对域中的值做赋值和返回操作通常都是原子性的


 

4.模版方法设计模式:一些功能在基类中实现,并且其一个或多个抽象方法在派生类中定义

5.生成者,消费者(chef,waiter,resturet),生产者,消费者与 队列(BlockingQueue,LinkedBlockingQueue,ArrayBlockingQueue)

6.ScheduledThreadPooolExecutor(schedule运行一次任务),scheduleAtFixedRate()每隔规则的时间重复执行任务;

4.Semaphore,任何时候都只允许一个任务访问一项资源

5.Exchanger 是在两个任务之间交换对象的栏,应用场景:一个任务在创建对象,这些对象的生产代价很高昂,而另外一个任务在消费这些对象,

通过这种方式可以有更多的对象在被创建的同时被消费

6.仿真(银行出纳员仿真,饭店仿真)

7.分发工作

8.性能调优,乐观锁(多线程)?

9.比较各种map的实现(synchronizedHashMap,ConcurrentHashMap)

10.活动对象

 

 

java编程思想重点

 1.基本线程机制(thread,runnable)

 2.共享受限资源(synchronized,lock),原子性,易变性

 3.线程的本地存储(threadlocal共享资源,变量共享)

 4.终结任务

 5.线程之间的协作(wait(),notify(),notifyall(),sleep()),生产者与消费者

 6.死锁某个任务在等待一个另外一个任务,而后者在等待别的任务,一个任务之间相互等待的连续循环

   死锁必须同时满足的四个条件

     1.互斥条件(任务使用的资源不能共享)

     2.至少有一个任务它必须持有一个资源且正在等待获取一个当前被别的任务持有的资源

     3.资源不能被任务抢占(philosopher 很有礼貌,他们不会从其他philosopher那里抢chopstick)

     4.必须循环等待(一个任务等待某一个,某一个等待另外一个任务持有的资源,在等待第一个等循环)

 7.新类库的构件(CountDownLatch,CyclicBarrier,DelayQueue,PriorityBlockingQueue,ScheduledExecutor的温室控制器,semaphore,Exchanger)

分享到:
评论

相关推荐

    java编程思想读书笔记

    ### Java编程思想读书笔记 #### 一、Java与C++的区别及内存管理 在学习Java的过程中,我们常常会拿它与C++进行比较。这两门语言虽然有着相似之处,但也有许多不同点。 1. **内存管理:** - C++提供了更为底层的...

    Java编程思想笔记(全)

    ### Java编程思想笔记知识点概述 #### 第 1 章 对象导论 在这一章节中,主要介绍了Java中的基本概念——对象。对象是面向对象编程的核心,它封装了数据和行为。本章首先解释了对象的概念,接着讨论了如何创建对象...

    学习笔记:多线程Java Socket编程示例

    在本学习笔记中,我们将探讨如何使用Java的Socket编程实现多线程服务器,特别是通过ExecutorService创建线程池来处理客户端的并发请求。ExecutorService是一个高级的线程管理工具,它允许我们更有效地管理和控制线程...

    Java编程思想学习笔记

    在讨论Java编程思想学习笔记时,首先需要了解的是Java语言的平台无关性,而这一特性正是通过Java虚拟机(JVM)得以实现的。JVM作为Java程序设计的关键组成部分,对于Java开发人员来说是必须掌握的基础知识。在该学习...

    Java高并发笔记.pdf

    ### Java高并发核心知识点解析 #### 一、同步与异步 **同步(Synchronous)** ...通过对这些概念的学习,开发者可以更好地掌握Java并发编程的核心思想和技术要点,进而提高系统的整体性能和稳定性。

    java编程思想读书笔记.rar

    《Java编程思想》是 Bruce Eckel 的经典之作,这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的程序员来说都是极好的学习资源。以下是对书中的主要知识点进行的详细解读: 1. **Java语言基础...

    Java编程思想重点笔记(Java开发必看).pdf

    以上只是Java编程思想笔记中的冰山一角,深入学习还包括网络编程、数据库连接、JVM内存模型、垃圾回收机制、并发编程高级话题、Spring框架等内容。这些知识点构成了Java开发者必备的基础知识体系,通过不断学习和...

    达内JAVA培训综合笔记

    多线程是Java编程中一个重要的高级特性,笔记中详细介绍了Thread线程类及多线程的使用,以及线程池的概念,这些都对于编写高效、可维护的并发程序至关重要。同时,还涉及了Socket网络编程和双缓冲队列,这些是构建...

    王者归来之Thinking in java读书笔记

    《王者归来之经典-Java编程思想读书笔记》会介绍如何有效地使用异常处理机制,防止程序因未预期的错误而崩溃。 函数和方法是代码复用的关键。Java支持方法重载和重写,这使得代码更加灵活且易于维护。书中会详细...

    JAVA学习笔记

    笔记内容包括了几个核心领域,如编程思想、多线程设计模式、网络编程,以及JAVA的新输入/输出(NIO)系统。 首先,编程思想是JAVA学习的基础,它涉及到面向对象编程的概念,如封装、继承、多态,以及如何通过设计...

    B站java狂神说笔记

    这份笔记的PDF版本详细讲解了Java的基础概念、进阶特性和实战应用,旨在帮助读者全面理解和掌握Java编程。 一、Java基础 Java基础部分包括了Java环境的搭建、基本语法、数据类型、控制结构(如if语句、switch语句、...

    JAVA经典教材笔记

    - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA发展概述** - Java的发展历程:从1995年由Sun Microsystems公司发布以来,Java经历了多次重大...

    中文版Thinking in Java 4th编程思想(笔记)

    《中文版Thinking in Java 4th编程思想》是学习Java编程的重要参考资料,它深入浅出地介绍了面向对象编程的核心概念。下面将详细解读其中的主要知识点。 1. **对象导论** - **万物皆对象**:Java编程的核心是对象...

    瑜琅java学习笔记

    - **多线程**:内置对多线程的支持,便于开发并发应用。 - **架构中立**:Java程序独立于硬件平台,只需要相应的Java虚拟机即可运行。 - **解释性**:Java程序首先被编译为字节码,然后由Java虚拟机解释执行。 - **...

    java黑马笔记.rar

    Java内置了对多线程的支持,可以通过实现Runnable接口或继承Thread类创建线程,通过synchronized关键字和Lock接口处理并发问题。 8. **网络编程**: Java提供了丰富的Socket编程API,可以实现客户端和服务端的...

    Java学习笔记适合java初学者使用

    【Java学习笔记】是针对Java初学者的一套全面的学习资源,旨在帮助新手快速掌握Java编程基础知识。这份资料包含了丰富的学习内容,如Java语言的核心概念、语法特性、面向对象编程思想等,同时也融入了实践性的练习,...

    java学习笔记JDK6.0课件和代码

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。JDK(Java Development Kit)是Java...随着Java技术的不断发展,虽然JDK 6.0已经过时,但它仍然是初学者理解和掌握Java编程思想的宝贵资源。

    全套达内学习笔记(java)

    【CoreJava.zip】:核心Java是Java编程的基础,可能包括了Java SE(标准版)中的核心概念和技术,如IO流、NIO(非阻塞I/O)、多线程、并发编程、集合框架的深入探讨、泛型、枚举、Lambda表达式、Stream API等。...

    java私塾学习笔记整理

    7. **多线程**:内置了对多线程的支持,可以轻松地开发并发应用程序。 8. **动态性**:支持运行时动态加载类。 **四、Java工作原理** Java程序的工作流程大致如下: 1. 编写源代码(`.java`文件)。 2. 使用Java...

Global site tag (gtag.js) - Google Analytics