当前位置:编程学习 > JAVA >>

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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,