java线程笔记

本文深入探讨了Java线程的概念,包括线程的定义、使用线程提高程序效率的原因,以及如何创建线程的两种常见方法。同时,文章详细介绍了守护线程与用户线程的区别,以及如何在代码中实现它们。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 什么是线程?
答:线程是操作系统独立调度的基本单位。
2.为什么使用线程?
答:对于一个程序而言,它或多或少的包含一些相互独立的代码段,如果这些代码能在时间上重叠执行,会具有更高的效率。线程提供了一种方法可以做到这一点。多线程可以加快一个任务的完成。
3. java线程的两种创建方法.
 A. 一种方法是将其定义为Thread类的子类,并重写Thread中的run( )方法。
public class MyThread extends Thread 
{
@Override
public void run()
{
System.out.println("hello world");
}
public static void main(String[] args)
{
MyThread mythread new MyThread();

mythread.start();
}
}

 B. 另一种方法是将其定义为实现接口Runnable形式,然后实现接口中的run( )方法,然后在需要的时候在类中        创建一个Thread对象。
  public class MyThread 
       
 public static void main(String[] args) 
 
 Thread thread = new Thread(new Runnable() 
 
public void run() 
 
 System.out.println("hello world"); 
 
 }); 
 
}
4. 守护线程和用户线程
    在java中有两类线程,User Thread(用户线程),Daemon Thread(守护进程)
    守护线程:它的作用是保护非守护线程的正常运行,守护线程最典型的例子是垃圾收集器(GC)。当且仅当                         JVM中不存在用户进程时,守护进程就随着JVM一同结束工作。
    用户线程:用户线程与守护线程的区别集中在JVM上。当所有的用户线程结束时,JVM便退出。而当JVM退出     时,守护线程也就随之结束。
    
    守护线程并非只有虚拟机内部提供,我们也可以显示的通过mythread.setDaemon(true)的方式将一个线程变     成一个守护线程。值得注意的是mythread.setDaemon(true)必须在mythread.start()之前,不然就会抛出
    java.lang.llegalThreadStateException异常。Daemon中产生的新线程也是Daemon线程。还有一点就是并       不是所有的任务都可以让守护进程执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值