java多线程学习入门第一天

何为线程

Java程序通过线程执行,线程在程序中具有独立执行路径。它是用于封装代码执行序列的对象。在执行过程中,不同的线程会获得不同的JVM栈空间,独立的栈可以追踪他们自己下一条执行指令。同时,栈空间为每个线程准备独立的方法参数,局部变量和返回值的拷贝。
主要主要是通过java.lang.Thread类和java.lang.Runnable接口实现线程机制。

实现方式

1. Runnable接口

最常用的实现方式:
//实现Runnable匿名类
    Runnable r =new Runnable(){
    	public void run(){
    		//todo
    	}
    }
    //将匿名类对象传入Thread()构造方法
    Thread  t = new Thread(r);
    //执行线程
    t.start();

2. Thread类

不接受Runnable参数,继承Thead对象,实现run()方法。

  class MyThraed extends Thread{
  	     public void run(){
      //todo
     }
	}
	Thread t = new MyThread();
t.start();

线程状态

多线程理论点击这里

如图:线程生命周期的内的各个状态以及他们之间的关系。

在这里插入图片描述

守护线程

线程分为守护线程与非守护线程。Thread中的isDaemon()方法用于判断是否守护线程。如果是则返回true。默认情况下,我们创建的都是非守护线程,如果想要创建守护线程,需要调用Thread的setDaemon(boolean is Daemon)方法,将true作为参数。
示例如下:

Thread t = new Thread(r);
t.setDaemon(true);

守护线程的特点

守护线程会在其他非守护线程结束后自动死亡,**当非守护默认主线程终止后,应用程序还会等到全部后台的非守护线程终止之后才会终止,如果后台的线程是守护线程,那么程序直接终止,无须等待。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值