JAVA多线程

概念

进程: 是一个程序在其自身的地址空间中的一次执行活动,是程序独立运行的基本单位。
线程: 是进程的一部分,程序执行中的一个执行路径(子任务),一个进程可以多个线程,如:Eclipse在输入代码时可以校验。
区别与联系:
一个进程可以包含多个线程,一个线程对应进程中的一条执行路线 。
即:进程包含线程、线程构成进程;

线程的状态与生命周期

1)新建状态
即创建一个新的线程对象(new Thread)。当一个线程处于创建状态时,系统不为它分配资源。

Thread myThread = new Thread( );

2)就绪状态
Java通过start方法启动处于新建状态的线程对象,使其进入就绪状态。处于就绪状态的线程已经具备了运行条件,将进入线程队列等待系统为其分配CPU,一旦获得了CPU,线程就进入运行状态,并调用自己的run方法。

  myThread.start();

3)运行状态
处于就绪状态的线程被调度并获得CPU资源后即进运行状态,每一个Thread类及其子类的对象都有一个run()方法,当线程对象被调度执行的时候,它将自动调用本对象的run()方法。
注意:线程的操作应该写到run()方法中。
4)阻塞状态
一个正在执行的线程如果在某些特殊情况下,如被人为挂起或它的CPU时间片耗尽时,将让出CPU并暂时中止自己的执行,进入阻塞状态。
阻塞时它不能进入排列队列,只有当引起阻塞的原因被消除时,线程才可以转入就绪状态,重新进到线程队列中排队等待CPU资源,以便从原来终止处开始继续执行。
5)终止状态
终止状态是线程生命周期的最后一个阶段。线程完成全部工作后会正常结束运行,或线程被强制性的终止。

实现多线程

继承Thread类

 Java.lang包中的Thread类,是一个专门用来创建线程的类,该类中提供了线程所用到的属性和方法。我们通过创建该类的子类来实现多线程。
public class TestThread extends Thread {
public void run() {
	for(int i = 1;i<=10;i++){
     	System.out.println("子线程:"+i);}
	}
     public static void main(String[] args) {
		TestThread tt = new TestThread();
		tt.start(); //注意,不要直接调用run方法
		for(int i = 1;i<=10;i++){
     		System.out.println("主线程:"+i);
		}
     }
}

实现Runnable接口

通过实现Runnable接口,并实现接口中定义的唯一方法run(),可以创建一个线程。

public class TestThread implements Runnable{
        public void run() {
               for(int i = 1;i<=10;i++)
                   System.out.println("子线程:"+i);
        }
        public static void main(String[] args) {
              TestThread tt = new TestThread();
              Thread thread=new Thread(tt);
              thread.start();
    		for(int i = 1;i<=10;i++){
            	System.out.println("主线程:"+i);
    		} 
      }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值