java Thread的介绍【电竞杜小帅】

java中的线程

java中的线程操作封装在Thread,Runnable中。
通过Thread中的相应方法可以启动线程、停止线程
每个线程都必须有run()方法(即线程体)
Thread通过调用start()方法调用fun(),从而开始线程的执行。

线程的生存周期

在这里插入图片描述
创建方法

Thread t=new Thread()//创建可运行的线程对象只能做开始和终止操作(start(),stop())

start()方法产生线程运行时所需要的系统资源,并将线程交给java的线程调度器等待执行。
不可运行状态:
Thread.sleep(int time)
obj.wait()//发生阻塞
obj.notify() //恢复阻塞
死亡状态:
当run()方法执行结束时属于正常死亡
调动stop()方法时为非正常死亡。
线程的构造
public Thread()
public Thread(Runnable r,String name)
public Thread(Runnable r)
public Thread(String name)
通过两中方法实现线程体
1.通过继承Thread类并重写其run()方法(程序简单不能继承别的类)
Thread t = new MyThrea();
2.提过一个实现过Runnable接口的对象A(),并将这个对象做为Thread类的一个构造参数(可以将Thread类与代码 数据(实现了Runnable接口的类)分开,可以继承其他类)
Thread t=new Thread(A);

继承Thread类

public class ThreadDemo1 {
 public static void main(String[] args) {
  mytread r=new mytread("t1");//设置线程名称
  mytread r1=new mytread("t2");//设置线程名称
  r.start();
  r1.start();
 }
}
var foo = 'bar';
class mytread extends Thread{
 public mytread(String string) {
  super(string);
 }
 public void run() {
  for(int i=0;i<5;i++) {
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   Date data =new Date();
     System.out.println(getName()+": "+data.toLocaleString());
  }
 }
}

结果:
在这里插入图片描述

实现Runnable接口

public class ThreadDemo2 {
 public static void main(String[] args) {
  Thread t1=new Thread(new help(),"t1");
  t1.start();
  Thread t2=new Thread(new help(),"t2");
  t2.start();
 }
}
class help implements Runnable{
 @Override
 public void run() {
  for(int i=0;i<5;i++) {
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   Date date=new Date();
   System.out.println(date.toLocaleString());
  }
 }
}

结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值