`
lvwenwen
  • 浏览: 926375 次
  • 性别: 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多线程并发编程知识导图笔记.xmind

    java多线程并发编程知识导图笔记.xmind

    Java 模拟线程并发

    Java 模拟线程并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发

    Java并发编程学习笔记 pdf 多线程编程

    Java并发编程学习笔记,研究JAVA并发多线程编程的一本教程,使用并发技术可以开发出并行算法,充分利用多处理器的计算能力,避免硬件资源浪费。目前,在JAVA并发编程方面的论述系统且内容详实的技术资料不太多,Java...

    JAVA多线程并发编程

    学习并发编程自己总结的知识,非常实用。JAVA学习并发编程的精华

    java 多线程并发实例

    代码里面包含一个并发4个线程同时运行 全部开始 全部停止 单个停止还有点问题。 还有生产者消费者 里面的里面能帮助你理解多线程的运用!

    Java_多线程与并发编程总结.doc

    对于一个进程中的多个线程来说,多个线程共享进程的内存块,当有新的线程产生的时候,操作系统不分配新的内存,而是让新线程共享原有的进程块的内存。因此,线程间的通信很容易,速度也很快。不同的进程因为处于不同...

    深入Java多线程和并发编程

    深入Java多线程和并发编程

    多线程与高并发编程笔记、源码等

    超全的多线程与高并发的编程笔记,从JVM&JMM角度讲多线程,synchronized优化原理,AQS和线程池等等,需要的童鞋请自行下载!

    java线程与并发编程实践

    java线程与并发实践编程 /美(jeff Friesen) 2017.2 java线程api和并发工具的实用指南

    Java 多线程与并发编程总结.doc

    Java 多线程与并发编程总结.doc

    java多线程并发

    java多线程并发的在新窗口

    java线程与并发编程

    java线程与并发编程是java并发编程的盛典,绝对高清版

    java并发编程2

    java并发编程pdf文档第二部分:Java并发编程实战.pdf、Java多线程编程核心技术.pdf、实战Java高并发程序设计.pdf

    java多线程并发编程例子

    关于java.util.concurrent多线程核心包内各种线程资源的使用场景例子

    java多线程笔记

    Java线程:概念与原理 2 一、操作系统中线程和进程的概念 2 ...Java线程:并发协作-线程的交互 47 Java线程:并发协作-生产者消费者模型 52 Java线程:并发协作-死锁 55 Java线程:线程之间的数据传递 58

    多线程并发和设计模式学习笔记(代码)

    多线程并发从,学习笔记,代码+注释,从线程创建开始到多线程并发,相关锁以及一些设计模式等

    java多线程并发演示

    实现多线程的并发执行,能演示操作系统的时间转轮调度算法对多线程程序执行的影响效果,能控制一个或多个线程的执行情况。

    Java并发编程学习笔记

    1、线程安全和锁 Synchronized 底层实现原理 2、可重入锁与 Synchronized 的其他特性 3、ThreadLocal 的底层实现与使用 4、ReentrantLock底层实现和如何使用 5、Condition源码分析 6、ReentrantReadWriteLock底层...

    Java 并发性和多线程

    Java 并发性和多线程Java 并发性和多线程Java 并发性和多线程Java 并发性和多线程Java 并发性和多线程Java 并发性和多线程Java 并发性和多线程Java 并发性和多线程Java 并发性和多线程

Global site tag (gtag.js) - Google Analytics