如何创建线程

来源:互联网 发布:android json解析工具 编辑:程序博客网 时间:2024/04/28 00:58

有两种方式来创建一个线程:

  1. 通过扩展Thread类
  2. 通过实现Runnable接口。

Thread类:

Thread类提供构造函数和方法来创建和执行线程的操作.Thread类扩展了Object类并实现了Runnable接口。

常用的Thread类构造函数:

  • Thread()
  • Thread(String name)
  • Thread(Runnable r)
  • Thread(Runnable r,String name)

Thread类常用的方法:

  1. public void run(): 用于为线程执行操作。
  2. public void start(): 启动线程的执行.JVM在线程上调用run()方法。
  3. public void sleep(long miliseconds): 使当前正在执行的线程休眠(临时停止执行)指定的毫秒数。
  4. public void join(): 等待线程死机。
  5. public void join(long miliseconds): 等待一个线程死亡指定的毫秒数。
  6. public int getPriority(): 返回线程的优先级。
  7. public int setPriority(int priority): 更改线程的优先级。
  8. public String getName(): 返回线程的名称。
  9. public void setName(String name): 更改线程的名称。
  10. public Thread currentThread(): 返回当前正在执行的线程的引用。
  11. public int getId(): 返回线程的id。
  12. public Thread.State getState(): 返回线程的状态。
  13. public boolean isAlive(): 测试线程是否存活。
  14. public void yield(): 导致当前正在执行的线程对象临时暂停并允许其他线程执行。
  15. public void suspend(): 用于挂起线程(depricated)。
  16. public void resume(): 用于恢复挂起的线程(depricated)。
  17. public void stop(): 用于停止线程(depricated)。
  18. public boolean isDaemon(): 测试线程是否是守护进程线程。
  19. public void setDaemon(boolean b): 将线程标记为守护程序或用户线程。
  20. public void interrupt(): 中断线程。
  21. public boolean isInterrupted(): 测试线程是否已被中断。
  22. public static boolean blocked(): 测试当前线程是否被中断。

可运行界面:

Runnable接口应该由其实例旨在由线程执行的任何类来实现。Runnable接口只有一个名为run()的方法。
  1. public void run(): 用于为线程执行操作。

开始线程:

Thread类的start()方法用于启动新创建的线程。它执行以下任务:
  • 新线程启动(带有新的callstack)。
  • 线程从新状态移动到Runnable状态。
  • 当线程有机会执行时,它的目标run()方法将运行。

1)Java Thread示例通过扩展Thread类

  1. class  Multi  extends  Thread {  
  2. public void  run(){   
  3. System.out.println(thread is running ...” );  
  4. }  
  5. public static void  main(String args []){    
  6. Multi t1 = new  Multi();  
  7. t1.start();  
  8.  }  
  9. }  
输出:thread is running...

2)通过实现Runnable接口的Java Thread实例

  1. class Multi3 implements Runnable {  
  2. public void  run(){   
  3. System.out.println(“thread is running ...” );  
  4. }  
  5.   
  6. public static void  main(String args []){    
  7. Multi3 m1 = new  Multi3();  
  8. Thread t1 =new Thread(m1);
  9. t1.start();  
  10.  }  
  11. }  
输出:thread is running...
如果您不继承Thread类,则您的类对象不会被视为线程对象。因此,您需要明确地创建Thread类对象。我们实现Runnable的类的对象,以便您的类run()方法可能执行。

原创粉丝点击