Java创建线程的方式

Posted 追梦赤子心

tags:

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

 ①继承Thread类(真正意义上的线程类),是Runnable接口的实现。 

②实现Runnable接口,并重写里面的run方法。 

③使用Executor框架创建线程池。Executor框架是juc里提供的线程池的实现。 

调用线程的start():启动此线程;调用相应的run()方法 

继承于Thread类的线程类,可以直接调用start方法启动线程(使用static也可以实现资源共享).一个线程(对象)只能够执行一次start(),而且不能通过Thread实现类对象的run()去启动一个线程。 

实现Runnable接口的类需要再次用Thread类包装后才能调用start方法。(三个Thread对象包装一个类对象,就实现了资源共享)。 

线程的使用的话,注意锁和同步的使用。(多线程访问共享资源容易出现线程安全问题) 


  

一般情况下,常见的是第二种。 

* Runnable接口有如下好处: 

*①避免点继承的局限,一个类可以继承多个接口。 

*②适合于资源的共享 

  

/* 

 * Thread的常用方法: 

 * 1.start():启动线程并执行相应的run()方法 

 * 2.run():子线程要执行的代码放入run()方法中 

 * 3.currentThread():静态的,调取当前的线程 

 * 4.getName():获取此线程的名字 

 * 5.setName():设置此线程的名字 

 * 6.yield():调用此方法的线程释放当前CPU的执行权(很可能自己再次抢到资源) 

 * 7.join():在A线程中调用B线程的join()方法,表示:当执行到此方法,A线程停止执行,直至B线程执行完毕, 

 * A线程再接着join()之后的代码执行 

 * 8.isAlive():判断当前线程是否还存活 

 * 9.sleep(long l):显式的让当前线程睡眠l毫秒  (只能捕获异常,因为父类run方法没有抛异常) 

 * 10.线程通信(方法在Object类中):wait()   notify()  notifyAll() 

 * 

 *设置线程的优先级(非绝对,只是相对几率大些) 

 * getPriority():返回线程优先值 

 * setPriority(int newPriority):改变线程的优先级 

 */ 


































































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

Java线程的四种创建方式

java创建线程的方式有几种?

请教:java线程问题。创建Thread

java 线程最多能创建多少个

java怎么创建一个线程

如何创建并运行Java线程