这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战
当回首往事,不因虚度年华而悔恨。
线程入门到放弃 (概念篇初体验)
在我们学习之前,我们先要思考一下,我们为什么要学习多线程?
- 为了学习而学习,不知道为什么,反正要学习
- 盲目学习,别人都学,我也要学习
- 为了面试而学习,面试造火箭时,多线程可以多拧螺丝钉
- 感兴趣学习、且能加薪而学习
正题:多线程是什么?多线程能干什么?多线程怎么用?----别问,问就是我也不知道。
相关概念
- 程序:程序是计算机中指令和数据的有序集合。(通俗点就是全是bug的静态代码)
- 进程:
- 是程序在处理机上的一次执行过程
- 是操作系统进行资源调度的基本单位
- 线程:
- 线程是进程的一个执行单元
- 一个进程至少有一个线程(也可以是多个线程)
- 线程共享进程中的资源,但没个线程有自己的寄存器、线程栈等
- 线程是CPU调度的最小单位
- 串行:串行是指所有的任务按照先后顺序执行。(场景:过单人独木桥,一个一个过)
- 并发:两个或两个以上的时间在同一时间段内间隔发生。(场景:两队人去蜜雪冰城买饮料,两队的人间隔交替买)
- 并行:两个或两个以上的事件在同一时间段内同时发生。(场景:买火车票,好几个窗口同时出售)
线程创建与启动
创建线程就是创建一个Thread类的对象实例。常用的创建方式有两种构造方法 new Thread() 和 new Thread(Runnable);
一、new Thread()
-
创建ThreadExtend类,继承Thread类,重写run()方法
public class ThreadExtend extends Thread { @Override public void run() { System.out.println("继承Thread类,重写run方法。。"); } } -
创建Test测试类
public class Test { public static void main(String[] args) throws InterruptedException { ThreadExtend threadExtend = new ThreadExtend(); threadExtend.start(); //Thread.sleep(1000); //main线程睡一秒 System.out.println("main线程执行。。。"); } } -
运行结果
///: main线程执行。。。 继承Thread类,重写run方法。。 ----------------------------------------- 当打开测试类注解时,输出结果 ///: 继承Thread类,重写run方法。。 main线程执行。。。
二、new Thread(Runnable)
-
创建ThreadImpl类,实现Runnable接口,重写run()方法
public class ThreadImpl implements Runnable { @Override public void run() { System.out.println("实现Runnable类,实现方法。。。"); } } -
创建Test2测试类
public class Test2 { public static void main(String[] args) throws InterruptedException { ThreadImpl threadImpl = new ThreadImpl(); Thread thread = new Thread(threadImpl); thread.start(); //Thread.sleep(1000); //main线程睡一秒 System.out.println("main线程执行。。。"); } } -
运行结果
///: main线程执行。。。 实现Runnable类,实现方法。。。 ---------------------------------------- 当打开测试类注解时,输出结果 ///: 实现Runnable类,实现方法。。。 main线程执行。。。
END-- 持续更新...
- 没有华丽的排班。。
- 文中如有错误,欢迎在评论区指正。。
- 个人笔记,分享给正在学习的朋友们。加油!