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

浅谈Java线程学习

话说,线程是为了java程序能够获得更高的执行效率,而引入的一个概念。所谓的线程,就是一个可以独立、并发执行的程序单元。而,多线程是指,程序中同时存在多个执行体,各线程按照自己的执行路线并发的工作,独立完成各自的功能,互不干扰。就好像,我们能够在计算机上,同时听音乐和上网浏览信息一样。这种执行效果是不是很好。

线程的生命周期,就像我们学习android中的activity类也有自己的生命周期,以及操作系统中的一些执行程序也有自己的生命周期类似。每个线程要经历:新生状态、就绪状态、运行状态、阻塞状态、死亡状态,这样一个从新生到死亡的过程称为一个生命周期。

下面再来说说多线程的实现方法,为什么要直接讲多线程呢?因为一个线程的话,就可以直接执行了,其执行过程就是按照他的一个生命周期来运行的。所以搞明白的是多线程的运行机制,况且在实际应用中,很少(或是几乎没有)有单线程执行任务的,就像linux系统在用户不工作的情况下,他的后台都有近一百左右的程序在运行。所以搞清楚多线程的运行机制很重。

直接看程序:

1、线程的子类继承:


[java]
package moreThread; 
 
public class ThreadZiLei extends Thread{ 
    String s ; 
    int m, count = 0 ; 
    public ThreadZiLei(String s, int m) { 
        super(); 
        this.s = s; 
        this.m = m; 
    } 
     
    public void run() { 
        try 
        { 
            while(true) 
            { 
                System.out.print(s); 
                sleep(m); 
                count++; 
                if(count>=20) { 
                    break; 
                } 
            } 
            System.out.print(s+"finished!"); 
        } 
        catch(InterruptedException e) { 
            return; 
        } 
    } 
     
    public static void main (String args[]) { 
        ThreadZiLei threadZiLeiA = new ThreadZiLei("A ",50); 
        ThreadZiLei threadZiLeiB = new ThreadZiLei("B ",100); 
        threadZiLeiA.start(); 
        threadZiLeiB.start(); 
        System.out.print("main is finished !");    //说明thread A、B和main函数是并发的线程。  
    } 
 

package moreThread;

public class ThreadZiLei extends Thread{
 String s ;
 int m, count = 0 ;
 public ThreadZiLei(String s, int m) {
  super();
  this.s = s;
  this.m = m;
 }
 
 public void run() {
  try
  {
   while(true)
   {
    System.out.print(s);
    sleep(m);
    count++;
    if(count>=20) {
     break;
    }
   }
   System.out.print(s+"finished!");
  }
  catch(InterruptedException e) {
   return;
  }
 }
 
 public static void main (String args[]) {
  ThreadZiLei threadZiLeiA = new ThreadZiLei("A ",50);
  ThreadZiLei threadZiLeiB = new ThreadZiLei("B ",100);
  threadZiLeiA.start();
  threadZiLeiB.start();
  System.out.print("main is finished !");    //说明thread A、B和main函数是并发的线程。
 }

}
结果:

[java]
A main is finished !B A A B A A B A A B A A B A A B A A B A A B A A B A A B A A finished!B B B B B B B B B B B finished! 

A main is finished !B A A B A A B A A B A A B A A B A A B A A B A A B A A B A A finished!B B B B B B B B B B B finished!


2、通过runnable接口实现多线程


[java]
package moreThread; 
 
public class RunnableInterfece implements Runnable{ 
    String s ; 
    int m, count = 0 ; 
    public RunnableInterfece(String s, int m) { 
        super(); 
        this.s = s; 
        this.m = m; 
    } 
     
    public void run() { 
        try 
        { 
            while(true) 
            { 
                System.out.print(s); 
                Thread.sleep(m);   //这是在接口调用,注意与thread子类调用的方法有什么不同之处  
                count++; 
                if(count>=20) { 
                    break; 
                } 
            } 
            System.out.print(s+"has finished!"); 
        } 
        catch(InterruptedException e) { 
            return; 
        } 
    } 
     

package moreThread;

public class RunnableInterfece implements Runnable{
 String s ;
 int m, count = 0 ;
 public RunnableInterfece(String s, int m) {
  super();
  this

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,