Java语言基础:多线程
1. 有两种方法可以创建并运行一个线程:
继承Thread类并覆盖Run方法,Run中的代码就在另一个线程执行。
view plaincopy to clipboardprint?
class MyThread extends Thread {
MyThread() {
// 调用下面代码,线程开始运行
start();
}
@Override
public void run() {
// 这里的代码是在线程中执行的
int i = 0;
while (i < 20)
{
System.out.println(i);
try {
sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
++i;
}
}
}
public class Main {
public static void main(String[] args) {
MyThread myThread = new MyThread();
}
}
class MyThread extends Thread {
MyThread() {
// 调用下面代码,线程开始运行
start();
}
@Override
public void run() {
// 这里的代码是在线程中执行的
int i = 0;
while (i < 20)
{
System.out.println(i);
try {
sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
++i;
}
}
}
public class Main {
public static void main(String[] args) {
MyThread myThread = new MyThread();
}
}
实现Runnable接口并传给新建的Thread类,实现类的Run方法即在另一个线程执行。
view plaincopy to clipboardprint?
// 实现Runnable接口
public class Main implements Runnable {
@Override
public void run() {
// 这里的代码是在线程中执行的
int i = 0;
while (i < 20)
{
System.out.println(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
++i;
}
}
public static void main(String[] args) {
Main runable = new Main();
new Thread(runable).start();
}
}
// 实现Runnable接口
public class Main implements Runnable {
@Override
public void run() {
// 这里的代码是在线程中执行的
int i = 0;
while (i < 20)
{
System.out.println(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
++i;
}
}
public static void main(String[] args) {
Main runable = new Main();
new Thread(runable).start();
}
}
2. 后台线程(daemon)不属于程序不可或缺的一部分,当程序存在非后台线程时,程序就不会终止;而如果非后台线程都结束了,此时不管有没有后台线程,程序都可以随时终止。要设定一个线程为后台线程,可以调用Thread.setDaemon(true),在一个后台线程中创建其他线程,这些线程也自动被设为后台线程:
view plaincopy to clipboardprint?
class MyThread extends Thread {
MyThread() {
// 把该线程设为后台线程
setDaemon(true); &nbs
补充:软件开发 , Java ,