【JAVA SE基础篇】54.多线程介绍和创建

1.多线程学习内容

1.线程简介

2.线程实现

3.线程状态

4.线程同步

5.生产消费者

6.高级主题

2.线程简介

多线程是指多条并行路径,多路路径同时执行

方法间的调用:普通方法调用是闭合一条路径

多线程使用:开辟了多条路径

程序、进程和线程都是什么?

1.程序:一个软件,一个app(静态概念,是代码指令)

2.进程:在操作系统中运行中的程序(动态概念,一个进程匹配一个程序),例如:用优酷看视频,就是系统中的一个进程

3.线程:一个进程有多个线程,例如:用优酷看视频,同时有图像,有声音,有弹幕,有字幕

线程和进程的区分

1.进程:作为资源分配单位

2.线程:调度和执行单位

核心概念

1.线程就是独立的执行路径

2.在程序运行时,即使没有自己创建线程,后台也会存在多个线程,如:gc线程,主线程

3.main()为主线程,为系统的入口点,用于执行整个程序

4.在一个进程中,如果开辟多个线程,线程运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序不能人为改变

5.对于用一份资源操作时,会存在资源抢夺的问题,需要加入并发控制

6.线程会带来额外的开销,如cpu调度时间,并发控制开销

7.每个线程在自己的工作内存交互,加载和储存主内存控制不当会造成数据不一致

4.线程的创建

三种方式创建线程

1.继承Thread类

2.实现Runable接口

3.实现Callable接口(并发相关)

根据面向对象思想,多用实现,少用继承,以便达到多继承功能

例:

注:

1.执行线程时必须调用start(),加入到调度器中

2.不一定立即执行,系统安排调度分配执行

3.直接调用run(),不是开启多线程,是普通方法调用

例:通过线程,同时下载三个图片

1.下载图片工具类

2.通过线程调用三张图片

避免单继承的局限常用接口来实现多线程,还可以方便共享资源

注:

对比Thread和Runnable

Thread 启动线程:子类对象.start()

Runnable 启动线程:传入目标对象+Thread对象.start()

 

使用Callable接口创建多线程

 

posted @ 2020-07-13 17:48  CKuan  阅读(205)  评论(0编辑  收藏  举报