For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
并发编程开发随着互联网的不断发展而被越来越多的java程序员掌握,今天武汉达内java培训就给大家简单介绍一下,java线程并发编程开发入门知识点分享。
1.发布:一个对象是使它能够被当前范围之外的代码所引用。
常见形式:将对象的的引用存储到公共静态域;非私有方法中返回引用;发布内部类实例,包含引用。
2.逃逸:在对象尚未准备好时就将其发布。
不要让this引用在构造函数中逸出。例,在构造函数中启动线程,线程会包含对象的引用。
3.同步容器:对容器的所有状态进行穿行访问,Vector、Hashtable,Cllections.synchronizedMap|List
4.并发容器:ConcurrentHashMap,CopyOnWriteArrayList,ConcurrentLinkedQueue、BlockingQueue
5.list随机访问特性的优势。
6.Blocking增加了可阻塞的getset操作
7.ConcurrentHashMap:分离锁,为并发访问带来的高的吞吐量,同时几乎没有损失单个线程的访问性能。返回弱一致性的迭代器。
8.迭代器的弱一致性,在迭代器生成以后会检测容器的修改变化。
9.并发容器size(),isEmpty()弱化,返回近似结果。
10.CopyOnWriteArrayList:每次修改容器时复制,适用迭代需求大于修改需求情况。
11.生产者消费者模式,运用有界阻塞队列解耦生产者和消费者的代码。
12.Executor任务执行框架,实现了生产者消费者模式。
13.SynchronousQueue:put等待消费者可用,take等待生产者可用,适用于消费者充足的情景。
14.双端队列(deque)关联于窃取工作模式(workstealing),区别于生产者消费者模式中所有消费者共享一个工作队列,工作窃取模式每一个消费者都有自己的双端队列,如果一个消费者完成自己的全部工作,就可以偷取其它消费者队列队尾的任务。
15.工作窃取模式适用于当运行到一个任务的某一个单元时,可能会识别出更多的任务,如遍历文件。
16.当一个方法能够抛出InterruptedException时,说明它是可阻塞方法。抛出或捕获InterruptedException。
17.Synchronizer:同步者---semaphore、barrier、latch,封装状态,决定线程在此状态下的行为(通过或阻塞),提供操控状态的方法,高效的等待同步者进入期望的状态。
18.latch闭锁:延迟线程进度直到线程到达一个终点状态,像一个一次性开关。可以用来确保特定活动直到其它活动完成才发生。
例如:
确保一个计算不会被执行,直到需要的资源都被初始化。
确保一个服务不会被开始,直到依赖的其它服务已经开始。
等待,直到活动的所有部分都为继续处理做好准备。
19.FutureTask可以作为闭锁,抽象的可携带结果的计算,通过callable实现。Future.get依赖于任务的执行状态,任务运行完成则返回结果,否则一直等待,
20.Executor框架利用FutureTask完成异步任务。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。