1.Java线程的基本概念以及思想
1.多线程的产生来源
现在无论是电脑还是手机都是多核处理器,多核的话就会有多个任务同时执行才不会浪费机器的资源。于是就可以把一个程序内部分成多个任务一起执行。同时由于我们的程序也需要处理各种资源比如从用户那里获取输入需要一直等待用户的反应,同时用户反应了以后系统需要立马做出相应。但是我们系统的资源是分布在不同的硬件上的并且有的大小格式各不一样,有的需要IP访问了去服务端去请求,有的在磁盘上,有的在固态硬盘上访问速度不一样。并且资源的格式不一样预处理也不一样,因此应用系统层面也产生了多线程的需要。
2.任务调度层
把执行系统cup的执行功能当成一种以时间为单位的资源。同时我们的应用系统以进程表示一个应用程序的执行单元,以线程为进程的最小执行单元。我们应用程序以类做数据和方法的封装,因此调度程序执行和数据封装的类就会有数据同步的问题
3.类的使用层
由于类是Java中数据和操作的封装的统一体,因此类会携带线程同步的功能方法
4.数据同步的层
分为不同的使用场景
1.多个线程同时访问资源,对资源加锁,对方法加锁
2.线程内等待其他线程发送消息,使用广播,handler机制,
2.Java线程的实现方式
3.Java线程池的类型和使用
4.Java线程的数据同步方法
5.Java的生产者消费者模型
6.锁的类型和区别
7.volatile synchronized atomic类的区别