Java多线程---线程的创建和使用
主要内容
程序、进程、线程的概念
Java中多线程的创建和使用
1、继承Thread类与Thread类的主要方法
2、实现Runable接口
3、线程的调度与设置优先级
一、程序、进程、线程的概念
1、程序(program):可以理解为一段静态的代码,静态对象。是为了完成特定任务、用某种语言编写的一组指令的集合。
2、进程(process):它是内存中的一段独立的空间,可以负责当前应用程序的运行。当前这个进程负责调度当前程序中的所有运行细节。
进程是一个动态过程,有它自己的产生、存在和消亡的过程。
3、线程(thread):它是位于进程中,负责当前进程中的某个具备独立运行资格的空间。
区别:进程是负责整个程序的运行,而线程是程序中具体的某个独立功能的运行。一个进程中至少应该有一个线程。
4、多线程:
在一个进程中,同时开启多个线程,让多个线程同时去完成某些任务(功能)。
(比如后台服务系统,就可以用多个线程同时响应多个客户的请求)
多线程的目的:提高程序的运行效率。
多线程运行原理:
cpu在线程中做时间片的切换。其实真正电脑中的程序的运行不是同时在运行的。
CPU负责程序的运行,而CPU在运行程序的过程中某个时刻点上,它其实只能运行一个程序。而不是多个程序。
而CPU它可以在多个程序之间进行高速的切换。而切换频率和速度太快,导致人的肉眼看不到。
每个程序就是进程, 而每个进程中会有多个线程,而CPU是在这些线程之间进行切换。
了解了CPU对一个任务的执行过程,我们就必须知道,多线程可以提高程序的运行效率,但不能无限制的开线程。
二、Java中多线程的创建和使用
1、继承Thread类
(1)实例:
package com.TestThread;
/*
* 创建一个子线程,完成1-100之间自然数的输出,同样,主线程也执行这个操作
* 创建多线程的第一种方式:继承java.lang.Thread类
*/
//1、创建一个继承于Thread的子类
class SubThread extends Thread{
//2、重写Thread类的run()方法,方法内实现此子线程要完成的功能
public void run(){
for(int i=1;i<=100;i++){
System.out.println(Thre