文章分两份,第一份主要内容为1-4点web
- 1.多线程的概念
- 2.Java程序运行原理
- 3.实现多线程的2种方式
- 4.2种方式的区别
- 5.线程同步(同步锁)
- 6.同步线程之间的通信
1.多线程的概念
(1)并发和并行
并行:多个CPU实例或是多台机器同时执行一段处理逻辑,是真正的同时。
并发:经过CUP调度算法,让用户看上去同时去执行,实际上从CPU操做层面并非真正的同时。并发每每须要公共的资源,对公共资源的处理和线程之间的协调是并发的难点。
(2)什么是进程
进程:一个应用程序就是一个进程。
多进程:在操做系统中,能同时运行多个任务程序(并发)。
(3)什么是线程
线程:是操做系统可以进行运算调度的最小单位。
多线程:一个进程中能够并发多个线程,每条线程并行且独立执行不一样的任务(提升程序的效率)。
多线程应用场景:服务器同时处理多个用户端请求,教学电脑控屏软件同时共享屏幕给多个电脑。面试
2.Java程序运行原理
Java命令会启动Java虚拟机,启动JVM,等于启动了一个应用程序,也就是启动了一个进程,该进程会自动启动一个“主线程”,而后主线程去调用某个类的main方法。
面试题:JVM的启动是多线程吗
JVM启动至少启动了垃圾回收线程和主线程,因此是多线程的。算法
3.实现多线程的2种方式编程
- (1).继承Thread类
- (2).实现Runnable接口
(1).继承Thread类
1.定义类继承Thread
2.重写run方法
3.把新线程要作的事情写在run方法里
4.建立线程对象
5.开启新线程
如下是四个Demo增强理解
Demo1
Demo2
Demo3服务器
Demo4
(2)实现Runnable接口
1.定义类实现Runnable接口
2.实现run方法
3.把新线程要作的事情写在run方法里
4.建立自定义的Runnable的子类对象
5.建立Thread对象,传入Runnable
6.调用start()开启新线程
如下是两个Demo增强理解
Demo5
Demo6
4.实现多线程的2种方式的区别
继承Thread:
好处:能够直接使用Thread类中的方法,代码简单。
弊端:若是已经有了父类,就不能使用这种方法。多线程
实现Runnable接口
好处:即便本身定义的线程类已经有了父类也没有关系,接口是能够多实现的。
弊端:不能直接使用Thread中的方法,须要先获取到线程对象后,才能获得Thread的方法,代码复杂并发
5.6点见Java编程基础(二);svg
本文同步分享在 博客“计蒙不吃鱼”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。操作系统