今天要学习的新知识有许多,加上其他的事情也需要处理,所以今天更新的时间比往常要晚一些。
文章目录
1.线程简介
2.创建线程的方式
3.代码举例
1.线程简介
今天来说一说线程,这部分知识随着研究的深入比较难理解,但是初期还是比较简单的,说起线程要先从程序和进程说起,首先程序可以理解为是一组静态的代码,而进程是正在运行中的程序,即静态的代码运行起来了,操作系统会以进程为单位,分配系统资源(即CPU的时间碎片)供进程中的线程使用,进程是资源分配的最小单位,最后组成进程的是线程,线程是正在执行程序中的小单元,允许许多线程同时执行,即多线程,那么来说说多线程的优势:1.发挥多处理器的强大能力;2.在单处理器系统上获得更高的吞吐率;3.建模的简单性;4异步事件的简化处理;线程是操作系统级别,我们无法控制线程的执行,只能对线程进行创建,睡眠,唤醒等操作(就目前对线程的理解)
2.线程的创建方式
方法一:继承(extend Thread)
(1) 自己描述一个类
(2)继承父类Thread
(3)重写run方法
(4)创建一个测试类,然后new线程对象,调用start()方法使线程进入就绪状态;
方法二:实现(implements Runnable):
(1)自己描述一个类
(2)实现Runnable接口
(3)重写run方法
(4)创建一个测试类,new线程对象,这里在调用start()方法前需要用Thread类包起来
(5)new一个Thread类,将线程对象放入Thread类中
(6)这样在调用start()方法使线程进入就绪状态;
两种创建方法各有其特殊的用处,如果我们没有特殊要求,我们把方法一玩明白就可以啦
3.代码举例
哈哈哈,因为方法二比方法一要复杂一些,所以这里使用方法二作为代码演示案例
思路:
线程可以理解为,许多小人按照一套规则(run方法)做事,为了区分,我们定义了一个小人儿(线程对象)姓名属性,以区分小人儿(线程对象),使用含参构造方法为小人儿(线程对象)取名,然后所有小人儿(线程对象)按照规则(run方法)去执行,小人儿创建好,并写好规则后,我们需要使用start()方法使线程进入准备状态,当我们手动点击运行时,就是跑的过程,预备备!!跑!!
public class Running implements Runnable{ //我们自己写一个Running类,然后实现Runnable接口 //这样我们我们写的类就是线程类了 private String name; //小人的姓名 public Running(){} public Running(String name){ this.name = name; } //使用含参构造方法为小人取名 public void run(){ for(int i=1;i