首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java多线程学习札记

2013-08-22 
java多线程学习笔记!本帖最后由 u011702993 于 2013-08-15 23:06:03 编辑以前没有写笔记的习惯,现在慢慢的

java多线程学习笔记!
本帖最后由 u011702993 于 2013-08-15 23:06:03 编辑
以前没有写笔记的习惯,现在慢慢的发现及时总结是多么的重要了,呵呵。
这一篇文章主要关于java多线程,自己网上找了一些资料在这里做成笔记。
同时也算是我以后复习的资料吧,呵呵,以后请大家多多指教。


Java多线程


在Java中,多线程有两种实现方法,一种是继承Thread类或者实现Runnable接口。
对于直接继承Thread类来说,代码大致如下:


class 类名 extends Thread{
 
  public void run(){
    //方法体
  }

}


/**
 *  继承Thread类,直接调用run方法
 **/
class hello extends Thread{
  public hello(){

  }

  private String name;

  public hello(String name){
    this.name=name;
  }

  public void run(){
    for(int i=0;i<5;i++){
      System.out.println(name+"运行"+i);
    }
  }

  public static void main(String[] args){
    hello h1=new hello("A");
    hello h2=new hello("B");
    h1.run();
    h2.run()
  }
}

【运行结果】:
A运行      0
A运行      1
A运行      2
A运行      3
A运行      4
B运行      0
B运行      1
B运行      2
B运行      3
B运行      4
我们会发现这些都是顺序执行的,说明我们调用的方法不对,应该调用start()
把上面的main方法改为:

public static void main(String[] args){
  hello h1=new hello("A");
  hello h2=new hello("B");
  h1.start();
  h2.start();
}

然后运行你就会发现它的输出结果基本每次都是不一样的。

注意:虽然这里调用了start()方法,但是实际上调用的还是run()方法的主体。
并且start方法重复调用会报异常。

下面通过实现Runnable接口:

class 类名 implements Runnable{
  public void run(){
    //方法体
  }
}

实现Runnable接口小例子:
 


/**
 *  实现Runnable接口
 **/
class hello implements Runnable{
  public hello(){
  
  }

  private String name;

  public hello(String name){
    this.name=name;
  }

  public void run(){
    for(int i=0;i<5;i++){
      System.out.println(name+"运行"+i);
    }
  }

  public static void main(String[] args){
    hello h1=new hello("线程A");
    Thread demo=new Thread(h1);
    hello h2=new hello("线程B");
    Thread demo1=new Thread(h2);
    demo.start();
    demo1.start();
  }
}


它的输出结果基本每次都是不一样的。
睡了~ 明天接着写~
多线程 同步 线程 Java 类
[解决办法]
学习了,一直记笔记都没看过,哈哈……
[解决办法]
不错,要是再说说它们之前的区别就更好了

热点排行