黑马程序员技术交流社区

标题: 多线程到底有几种实现方法???都是些什么?还有就是... [打印本页]

作者: 赵鸿富    时间: 2013-3-17 17:24
标题: 多线程到底有几种实现方法???都是些什么?还有就是...
本帖最后由 赵鸿富 于 2013-3-17 19:51 编辑

多线程到底有几种实现方法???都是些什么?还有就是同步有几种方法?是什么???
作者: 张善颖    时间: 2013-3-17 17:32
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
作者: 刘海浩    时间: 2013-3-17 17:57
实现线程有两种 继承Thread类或者实现Runnable接口...
实现同步也有两种,一种是用同步方法,一种是用同步块.. 同步方法就是在方法返回类型后面加上synchronized, 比如:public void synchronized add(){...}同步块就是直接写:synchronized (这里写需要同步的对象){...}
作者: 郭利超    时间: 2013-3-17 18:23
多线程有3种实现方法  继承Thread 类、实现Runnable 接口和创建线程池(JDK1.5之后才有的)实现多线程
synchronized,wait与notify 可以实现同步  其实还有很多可以实现同步的方法  这个就需要经验的积累了
作者: 炉海佳    时间: 2013-3-17 19:21
本帖最后由 炉海佳 于 2013-3-17 19:25 编辑

一.多线程有两种方法,一种是继续Thread类,另外一种是实现Runable接口。
1.继承Thread类
class Test extends Thread//继续Thread类
{
      private String name;
      public Test(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) {
        Test h1=new Test("aaa");
        Test h2=new Test("bbb");
        h1.start(); //开启线程
        h2.start(); //开启线程
    }
  
    }
2.实现Runnable接口
class Test implements Runnable //实现Runnable接口
{
      private String name;
      public Test(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)
   {
          Test h1=new Test("aaa");
          Thread demo1= new Thread(h1);
      
        Test h2=new Test("bbb");
         Thread demo2= new Thread(h2);
        demo1.start(); //开启线程
        demo2.start();  //开启线程  
  }
  
    }
都是调用start方法运行run方法,不过一般都是用实现runnable接口,因为它适合多个相同的程序代码的线程去处理同一个资源。

二.同步也有两种,同步代码块和同步方法。
1.同步代码块
synchronized(同步对象)
{
//这里面是需要同步的代码
}

2.同步方法
例如:
public synchronized void sale()// 用在方法主题上
{
        //里面是代码      
  }
作者: 陈丽莉    时间: 2013-3-17 19:29
若还有问题,请继续追问,或完善问题;没有的话,请将帖子分类改成【已解决】~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2