1. 什么是线程?
A. 一种方法是将其定义为Thread类的子类,并重写Thread中的run( )方法。
B. 另一种方法是将其定义为实现接口Runnable形式,然后实现接口中的run( )方法,然后在需要的时候在类中
创建一个Thread对象。
public class MyThread
{
public static void main(String[] args)
{
Thread thread = new Thread(new Runnable()
{
{
System.out.println("hello world");
}
});
}
在java中有两类线程,User Thread(用户线程),Daemon Thread(守护进程)
守护线程:它的作用是保护非守护线程的正常运行,守护线程最典型的例子是垃圾收集器(GC)。当且仅当
JVM中不存在用户进程时,守护进程就随着JVM一同结束工作。
用户线程:用户线程与守护线程的区别集中在JVM上。当所有的用户线程结束时,JVM便退出。而当JVM退出
时,守护线程也就随之结束。
守护线程并非只有虚拟机内部提供,我们也可以显示的通过mythread.setDaemon(true)的方式将一个线程变
成一个守护线程。值得注意的是mythread.setDaemon(true)必须在mythread.start()之前,不然就会抛出
java.lang.llegalThreadStateExcepti
on异常。Daemon中产生的新线程也是Daemon线程。还有一点就是并
不是所有的任务都可以让守护进程执行。
答:线程是操作系统独立调度的基本单位。
2.为什么使用线程?
答:对于一个程序而言,它或多或少的包含一些相互独立的代码段,如果这些代码能在时间上重叠执行,会具有更高的效率。线程提供了一种方法可以做到这一点。多线程可以加快一个任务的完成。
3. java线程的两种创建方法.
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();
}
}
@Override
public
{
System.out.println("hello
}
public
{
MyThread
mythread.start();
}
}
public void run()
}
4. 守护线程和用户线程