一、多线程概述
1、要认识进程得从程序开始,程序是对数据描述与操作的代码的集合;
2、进程是程序的一次动态执行过程,他对应了代码加载、执行至执行完毕的一个完整过程;
3、进程的特点是:
(1)、进程是系统运行程序的基本单位;
(2)、每一个进程都有自己独立的一块内存空间,一组系统资源;
(3)、每一个进程的内部数据和状态都是完全独立的;
4、线程是进程中执行运算的最小单位,可完成一个独立的顺序控制流程;
5、每个进程中至少包含一个主线程来作为这个程序运行的入口点;
二、Java中实现多线程
1、Java在类和接口方面位多线程提供内置支持;
2、Java中通过Thread类将线程所必须的功能都封装了起来,常用方法如下:
(1)、Thread():分配新的Thread对象;
(2)、Thread( Runnable target ):分配新的Thread对象,target位run()方法被调用的对象;
(3)、Thread( Runnable target,String name ):分配新的Thread对象,target位run方法被调用的对象,name为新线程的名字;
(4)、void run():执行任务操作的方法;
(5)、void start():使该线程开始执行,java虚拟机调用该线程的run()方法;
(6)、void sleep(long millis):在指定的毫秒数内让当前正在执行的线程休眠(暂停执行);
(7)、String getName():返回线程的名字;
void setName():指定线程名字;
(8)、int getPriority():返回线程的优先级;
(9)、void setPrority(int newPriority):更改线程的优先级;
(10)、static Thread currentThread():返回当前正在执行的线程对象的引用;
(11)、boolean isAlive():测试线程是否处于活动状态;
(12)、void join():等待线程终止;
(13)、void interrupt():中断线程;
boolean isInterrupted():判断当前线程是否是终止状态;
boolean interrupted():清除中断状态;
(14)、void yield():暂停当前正在执行的线程对象,并执行其他线程;
3、主线程
(1)、产生其他子线程的进程;
(2)、通常它必须最后完成执行,因为它执行各种关闭操作;
package 多线程;
public class Test {
public static void main(String[] args) {
Thread t = Thread.currentThread();
System.out.println("当前线程名是:"+t.getName());
t.setName("测试线程");
System.out.println("当前线程名是:"+t.getName());
/**
* 当前线程名是:main
* 当前线程名是:测试线程
*/
}
}
4、使用线程的过程
(1)、定义一个线程,同时指明这个线程所要执行的代码,即期望完成的功能;
(2)、创建线程对象;
(3)、启动线程;
(4)、终止线程;
三、在Java中使用线程
1、在Java中创建线程类有两种方法,一种是集成Thread类,另一种是实现Runnable接口;
2、继承Thread类创建线程
使用此方法创建线程一般要经过以下步骤:
(1)、继承Thread类;
(2)、重写run方法,将所有需要线程执行的代码全部写在run方法中;
(3)、创建线程对象;
(4)、调用start方法启动线程;
package 多线程;
public class MyThread extends Thread{
@Override
public void run() {
Thread.currentThread().setName("测试线程——");
for (int i = 1; i < 11; i++) {
System.out.println(Thread.currentThread().getName()+i);
}
}
public static void main(String[] args) {
MyThread