JAVA整理知识点传送门:
JAVA知识点拉理第一部分——常规知识
JAVA知识点梳理第二部分——接口、内部类、异常等等
JAVA知识点梳理第三部分——图形用户界面GUI部分
JAVA知识点梳理第四部分——Swing控件
JAVA知识点梳理第五部分——JAVA数据流(文件)
JAVA知识点梳理第六部分——线程
JAVA知识点梳理第七部分——网络
线程
线程与多线程
线程的概念
进程是程序的一次动态执行,对应了从代码加载、执行至执行完毕的一次完成过程。或者说,进程是程序在处理机中的一次运行。
线程是进程执行过程中产生的多条执行线索,是比进程单位更小的执行单位,在形式上同进程十分相似——都是用一个顺序执行的语句序列来完成特定的功能。不同的是,它没有入口,也没有出口,,因此其不能自动运行,必须依附于某一进程中,由进程触发执行。而在系统资源的使用上,属于同一进程的所有线程共享该进程的的系统资源,但是线程之间的切换速度要比进程切换快的多。
线程的结构
在Java中,线程可以认为是三部分组成的:
* 虚拟CPU,封装在java.lang.Thread类中,它控制着整个线程的运行。
* 执行的代码,传递给Thread类,由Thread来控制顺序的执行。
* 处理的数据,传递给Thread,是在代码执行过程中要处理的数据。
当一个线程被构造时,它由构造方法参数,执行代码,操作数据来初始化。
线程的状态
Thread类本身只是线程的虚拟CPU,线程所执行的代码是通过是通过run()方法来完成的。方法run()成为线程体。实现县城体的特定对象是在初始化线程传递给线程的。
线程有4种方法:新建(new)、可运行状态(runable)、死亡(dead)及阻塞状态(blocked)
创建线程
类Thread的构造方法:
public Thread (ThreadGroup group,Runable tarage,String name);
group 是线程所属的线程组,tarage是线程体run()方法所在的对象,name是线程的名字。
以下是创建线程的两种方法:
创建线程的方法——继承Thread类
定义一个类,它继承自Thread类并重写run()方法,这时在初始化这个类的实例的时候,目标对象tarage可以为null,表示这个实例本身就有线程体。
创建线程的方法二——实现Runable接口
Runable是Java中用以实现线程的接口,从根本讲,任何实现线程功能的类都要实现Runable接口。