Java多线程

Posted 张秋池

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程相关的知识,希望对你有一定的参考价值。

线程问题,或称并发

创建线程一般有一下方法

  • 继承Thread类,重写run方法
    1 public class TestThread extends Thread{ 
    2     public void run() {
    3             System.out.println("Hello World");
    4         }  
    5     public static void main(String[] args) {
    6         Thread mThread = new TestThread();
    7         mThread.start(); 
    8     } 
    9 }

     

  • 实现Runnable接口,并实现run方法
     1 public class TestRunnable implements Runnable {
     2     public void run() { 
     3             System.out.println("Hello World");
     4         } 
     5 }
     6 
     7 public class TestRunnable {
     8     public static void main(String[] args) {
     9         TestRunnable mTestRunnable = new TestRunnable();      
    10         Thread mThread = new Thread(mTestRunnable);
    11         mThread.start(); 
    12     } 
    13 }

    注意:Runnable 不是线程而是进程,或者称为thread的一个target

    • 实现Callable接口,重写call()方法
      public class TestCallable {  
          public static class MyTestCallable  implements Callable {  
              public String call() throws Exception {  
                   retun "Hello World";
                  }  
              }  
      public static void main(String[] args) {  
              MyTestCallable mMyTestCallable= new MyTestCallable();  
              ExecutorService mExecutorService = Executors.newSingleThreadPool();  
              Future mfuture = mExecutorService.submit(mMyTestCallable);  
              try { 
                  System.out.println(mfuture.get());  
              } catch (Exception e) {  
                 e.printStackTrace();
              } 
          }  
      }

      此处runnable和Callable接口的区别主要体现在后者可以得到一个返回值  并可以抛出异常,而前者不可以。本示例是在一个线程池当中实现的该接口。利用

      newSingleThreadPool方法去创建一个线程池

以上是关于Java多线程的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程与并发库高级应用-工具类介绍

多线程 Thread 线程同步 synchronized

Java多线程具体解释

自己开发的在线视频下载工具,基于Java多线程

什么是JAVA的多线程?

多个用户访问同一段代码