Java多线程入门知识点梳理
前言
在多核时代,高并发时代,对系统并行处理能力有很高要求。多线程就是这个时代最好的产物。通过使用多线程可以增强系统并行处理能力,提高CPU资源的有效利用;从而提高系统的处理能力。常见应用场景如:多窗口售票、生产消费模式、异步提交信息(如日志、发送消息),只要系统需要并行任务处理的场景都可以考虑使用多线程。当然它也有缺点,线程由CPU调度、程序员无法干涉、多线程的随机性,这就会增加不可控性,得出的数据重复、错乱等现象。。。这篇文章是从关键点上进行整理。。。后续会针对相关关键点制作相关系列文章。。。想了解多线程相关可以关注后续。。。
关键点如下:
1.并发、并行
2.进程、线程
3.Runable、Callable
4.线程同步:synchronized、Lock
5.线程协作:wait、notify、notifyAll
6.FutureTask
7.Thread
8.ExecutorService、Executors
9.入门案例:购票案例
10.atomic包:原子操作
11.线程协作应用:交叉打印案例
12.阻塞队列:BlockingQueue、ArrayBlockingQueue、LinkedBlockingQueue
13.阻塞队列应用:生产、消费模式案例
14.并发容器:ConcurrentHashMap、ConcurrentLinkedQueue、CopyOnWriteArrayList、ConcurrentSkipListMap
15.CAS:无锁操作保证线程安全
16.volatile:保证线程间可见性
17.JMM模型
18.多线程的随机性
19.多线程的状态
Java多线程入门知识点梳理的更多相关文章
- java多线程入门学习(一)
java多线程入门学习(一) 一.java多线程之前 进程:每一个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销.一个进程包括1--n个线程. 线程:同一类线程共享代码 ...
- Java多线程学习(一)Java多线程入门
转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79640870 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...
- (转载)Java多线程入门理解
转载出处http://blog.csdn.net/evankaka 写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更 ...
- Java并发相关知识点梳理和研究
1. 知识点思维导图 (图比较大,可以右键在新窗口打开) 2. 经典的wait()/notify()/notifyAll()实现生产者/消费者编程范式深入分析 & synchronized 注 ...
- Java 多线程入门
进程与线程 在学习Java多线程之前,先简单复习一下进程与线程的知识. 进程:进程是系统进行资源分配和调度的基本单位,可以将进程理解为一个正在执行的程序,比如一款游戏. 线程:线程是程序执行的最小单位 ...
- java多线程入门
一.认识多任务.多进程.单线程.多线程 要认识多线程就要从操作系统的原理说起. 以前古老的DOS操作系统(V 6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情.比如你在copy东西 ...
- 二十四 java 多线程一些知识点
1:blocked线程和waiting的线程的区别? 如何唤醒? java线程中含有waiting与blocked两种状态: 线程的 blocked状态往往是无法进入同步方法/代码块来完成的(BLOC ...
- Java多线程入门及实战
基本概念: 1: 程序 2 进程 3 线程 4 进程和线程的区别 5 进程和程序的区别 Java实现多线程的方法: 1 继承Thread 2 实现Runable 3 实现callable 4 线程池的 ...
- Java多线程 面试知识点总结1
一.JMM(Java内存模型) 参考 老刘-JMM面试包过 HollisChuang-Java内存模型 <Java并发编程实战>Chapter-16 <深入理解Java虚拟机> ...
随机推荐
- ionic —指令
引用 <!--1.引入 ionic css和js--> <!--2.定义ng-app--> <!--3.定义 angular.module('myAPp',['ionic ...
- 伪元素::before与::after的用法
::before与::after两个伪元素其实是CSS3中的内容,然而实际上在CSS2中就已经有了这两者的身影,只不过CSS2中是前面加一个冒号来表示(:before和:after).今天主要讲讲这两 ...
- js实现toFixed截取效果
Number.prototype.toFixed = function(fractionDigits) { ; || f > ) { throw new RangeError("Pre ...
- Java 社区论坛 - Sym 1.5.0 发布
简介 Sym 是一个用 Java 写的实时论坛,欢迎来 体验!(如果你需要搭建一个企业内网论坛,请使用 SymX) 非常详细的 Sym 功能点脑图 如果你在搭建或者二次开发时碰到问题,欢迎加 Q 群 ...
- Akka - Basis for Distributed Computing
Some concepts as blow: Welcome to Akka, a set of open-source libraries for designing scalable, resil ...
- BaseActivity合集
1.出自“高仿京东商城”: package com.itau.jingdong.ui.base; import com.itau.jingdong.AppManager; import com.ita ...
- Windows下部署ElasticSearch5.0以下版本
Windows下部署ElasticSearch分ElasticSearch5.0以上版本(包括5.0)和ElasticSearch5.0以下版本两种情况,这两种安装方式有很大不同.今天首先说Elast ...
- 如何写自定义的AlertView
如何写自定义的AlertView 效果 说明 考虑到后面的可定制性以及可维护性,本人用AbstractAlertView定义了AlertView抽象的基类,实现通过子类来完成. 注:这只是粗略的写了一 ...
- Android开发(7)数据库和Content Provider
问题聚焦: 思想:应用程序数据的共享 对数据库的访问仅限于创建它的应用程序,但是事情不是绝对的 Content Provider提供了一个标准的接口,可供其他应用程序访问和使用其他程序的数据 下面我们 ...
- python错误和异常(1)
1 SyntaxError: Python解释器语法错误,是唯一不是在运行时发生的异常. 2 检测和处理异常 try语句有两种主要形式:try-except 和 try-finally. 只能二选一 ...