简单介绍一下自己,95后小哥哥,高中毕业,泽宇教育优秀学员,Youcore框架学员,Angie价值变现研习社理财分群组长。现某机构学生,自学java,准备入职。
这是我的第一篇博客,打算用博客和OneNote沉淀自己的知识体系。做到自然重复。
学习本文的方法:朗读文字→手打或手写代码→复述→不看文章练习代码→熟能生巧→讲解给他人听→完成。
因为学习课程也该如此,基础永远都是要花大功夫钻研的。务必认真,专注和踏实。
好的,我们开始。
1.1 进程和线程的区别
打开Eclipse-新建Java Project,如下图
随便新建一个类,打知识点,我的是Know类
1.什么是线程?什么是进程?什么是多线程?
* 进程就是运行在电脑上的程序,每个程序都是一个进程,比如QQ,eclipse,微信,这些都是进程,有自己的执行路径,
* 在电脑的任务管理器可以查看。
* 线程就是这些进程,也就是这些程序的集合。
* CPU不停地切换进程和线程,所以我们看到的是多个软件同步运行。 多线程,就是提高运行效率的一种开发模型。
一句话理解:进程是所有线程的集合,每一个线程是进程中的一条执行路径。
* 解释:每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。
* 线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。
* 也可以把它理解为代码运行的上下文。
* 所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。
总结:进程是所有线程的集合,每一个线程是进程中的一条执行路径。
3.为什么要使用多线程?
* 为了提高程序效率,提升用户体验,创造更大的价值。
* 举例:迅雷多文件下载,微信群发,QQ群发,游戏中多模块加载等等
4.多线程的应用场景有哪些?
* 基本上所有与用户相关的领域都要用到多线程。
* 微信,QQ,千聊,迅雷文件下载,甚至是打字软件,word文档,爬虫,ajax,没有一个没用到的。
5.创建线程的方式(重点)
1.继承thread类,也就是重写run方法。
鼠标点到左边的Package Explorer Ctrl+N 新建class
初始状态如下
先建子线程,在用main方法主线程调用。写一个CreateThreadDemo1类
注意:
1.这个类继承Thread类,千万别写错了。
2.class前面是默认修饰符friendly
不然打run不会自动生成,而且还会报错
然后写一个30次的for循环
然后调用:
调用步骤 主类 main方法 回车 新建对象: 这里就copy类名快一些
CreateThreadDemo1 t1 = new CreateThreadDemo1();
然后启动线程,这里注意,不是调用run();,而是调用start();
package com.itmayiedu;
class CreateThreadDemo1 extends Thread{
/**
* run方法就是线程需要执行的任务或者执行的代码
*/
public void run() {
for (int i = 0; i < 30; i++) {
System.out.println("线程run:i"+i);
}
}
}
public class ThreadDemo1 {
public static void main(String[] args) {
CreateThreadDemo1 t1 = new CreateThreadDemo1();
t1.run();
for (int i = 0; i < 30; i++) {
System.out.println("主线程main:i"+i);
}
}
}
然后我们运行看看
哦豁,写错了。用的是run(); 不是线程运行,改回来。
现在看到,主线程和线程run交替执行,对吧。这个就是多线程,异步执行。
ok,今晚先睡,明天更新。