java多线程(基础篇)

概述

java对线程的支持主要体现在Thread类以及Runable接口上,他们都位于java.lang包下,不管是Thread类还是Runable接口,它们都有public void run()这个方法,这个run方法为我们提供了线程实际工作时的代码,换个说法,代码写在run方法中。

1.使用线程的好处,和使用线程的两种方法

1.充分利用CPU资源,简化代码模型,提高用户的体验。
2.第一种继承Thread类;第二种实现Runnable接口。

2.什么时候用Thread类和Runnable接口,直接说这两者的区别在哪里?

Thread:继承Thread实现的模式是 定义多个线程,各自完成各自的任务,数据资源各论各的,单继承 创建线程简单

Runnable: 实现Runnable实现的模式是 定义多个线程 ,做一个任务.其实在做一个任务用多个线程来做也可以用继承Thread类来实现只是比较有局限性,一般我们用实现Runnable接口来实现,数据资源共享,避免单继承的局限性。大多数情况下,用 Runnable接口

3.多线程常用的方法:

在这里插入图片描述

4. 线程里面的方法

public class test1{
public static void main(String[]args)
//获取主线程
  Thread t=Thread.currentThread();
  //修改名字
   t.setName("主线程:");
    //修改优先级
    t.setPriority(Thread.MAX_PRIORITY);
    //输出名字
    System.out.println(t.getName());
    //输出优先级
    System.out.println(t.getPriority());
    //是否激活
  System.out.println(t.isAlive());
    ......
}

5.创建线程的两种方法

1.第一种继承Thread类

public class ThreadA extends Thread {
 //重新run方法:需要线程完成任务
 @Override
 public void run(){
  for (int i = 0; i <20; i++) {
   try {
   //让线程休眠1秒
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   //获取当前线程的名字
      System.out.println(Thread.currentThread().getName()+"\t"+i);
  }
 }

2.第二种实现Runnable接口

public class test3 implements Runnable{
	@Override
 public void run() {
  //重写run方法
  for (int i = 0; i <20; i++) {
   try {
     Thread.sleep(1000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   System.out.println(Thread.currentThread().getName()+"\t"+i);
  }}
}

6. 创建线程的五个状态

在这里插入图片描述
1.创建状态:创建该类的实例对象,即创建了线程对象;
2.就绪状态:线程启动以后,没有抢占到cpu资源
3.运行状态:线程抢到资源开始完成自己的任务
4.阻塞状态:程序员调用某个方法将线程转入休眠状态 ,冻结不会和其他线程抢占资源
5.死亡状态:调用方法+自然死亡

7.总结问题

-使用线程用创建的线程去调start方法,才算启动的线程,为什么不是调run方法呢,调run方法:当前程序中只有mian一条线程,所有的事情需要main来完成,调start:开启一个全新的线程,主线程负责main方法中的代码 开启的线程负责run方法中的代码,各司其职。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值