概念:
Java多线程的重要性不言而喻,不管是平时开发还是面试问题,多线程始终作为很看重的一点,那么我们来看看多线程到底是怎么样的吧
说到线程就不得不提到进程
进程和线程
进程:可以看作一段代码,一个正在运行的程序
线程:可以堪称计算机运行中的一小块代码
线程是进程中的最小单位
进程的概念:
任务管理器可以有多个进程,每个进程运行的都是可执行程序,一个可执行程序就是一个软件,可执行程序的本质就是在计算机当中运行的一块代码
线程的作用:
它包装了一个功能,交给CPU去进行处理
1.独立使用CPU资源
2.每一个线程都是独立存在的,互不干扰
自定义线程
新建自定义线程的类,继承Thread,然后覆写run方法实现想要的功能,再到主方法里面去调用,文最末尾附上Demo
注意事项
直接调用run方法和start的区别?
可以直接调用run方法,但是没有启动一个独立的线程;
只有调用start 才回启动一个独立的线程;
自己启动的线程和主线程有关系吗?
直接写一个最简单的hello word 程序,就有一个主线程
一个线程一旦启动就是独立的了,和创建启动它的环境没有直接的包含关系
实现方式
继承Thread实现
实现方式一
自定义类继承Theard来进行创建,覆写run方法,然后在主方法中调用对象.start();方法启动
引入Runnable实现
实现方式二
自定义类implements Runnable接口,覆写run方法,在主方法中实例化自定义类的对象和Thread对象,在实例化Thread对象的时候传入自定义类的对象,然后Thread对象.start()来启动
Demo
Thread实现
自定义听音乐线程类
1 | package com.ifueen.classdemo._01Game; |
自定义玩游戏线程类
1 | package com.ifueen.classdemo._01Game; |
测试主类
1 | package com.ifueen.classdemo._01Game; |
引入Runnable实现
自定义线程类
1 | package com.ifueen.classdemo._05Runnable; |
测试主类
1 | package com.ifueen.classdemo._05Runnable; |
这就是线程最基本的概念和实现方式,下一篇我们会了解到线程同步问题