zoukankan      html  css  js  c++  java
  • java中实现多线程的方法有几种以及如何实现多线程

         多线程是java语言区别于其它语言的一大特点。其它语言向C++的话如果要实现多线程的话,必须调用操作系统的多线程机制(我不确定自己记得对不对

     了感兴趣的自己上网查查看)。

       在java5以前实现多线程有两种方法(继承Thread类和实现Runnable接口)

       它们分别为:

       使用new Thread()new Thread(Runnable)形式

       第一种直接调用threadrun方法,所以,我们往往使用Thread子类,即new SubThread()

       第二种调用   

        Runnablerun方法。

       第一种:

       new Thread(){}.start();这表示调用Thread子类对象的run方法,new Thread(){}表示一个Thread的匿名子类的实例对象,子类加上run方法后的代码如下:

       new Thread(){

       public void run(){

       }

      }.start();

       第二种:

    new Thread(

       new Runnable(){}

         ).start();

      这表示调用Thread对象接受的Runnable对象的run方法,new Runnable(){}表示一个Runnable的匿名子类的实例对象,

      runnable的子类加上run方法后的代码如下:

      new Thread(new Runnable(){

      public void run(){

     }

    }

    ).start();

    从java5开始,还有如下一些线程池创建多线程的方式:

    package com.yonyou.test;
    
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    /**
     * 测试类
     * @author 小浩
     * @创建日期 2015-3-2
     */
    
    public class Test{
    	public static void main(String[] args){
    		ExecutorService pool = Executors.newFixedThreadPool(3);
    				for(int i=0;i<10;i++)
    				{
    				pool.execute(new Runnable(){public void run(){ System.out.println();}});
    				}
    				Executors.newCachedThreadPool().execute(new Runnable(){public void run(){}});
    				Executors.newSingleThreadExecutor().execute(new Runnable(){public void run(){}});
    	}
    }
    

      

  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/xiohao/p/4308686.html
Copyright © 2011-2022 走看看