志在指尖
用双手敲打未来

java中有几种方法实现一个线程?

第一种:继承Thread类。NewThread(){}.start():表示调用子类对象的run办法。
第二种:完成Runable接口。
第三种:线程池创立多线程。
第四种:完成Callable接口,重写call函数(
继承Thread类完成多线程,重写run办法时没有返回值也不能抛出异常,运用Callable接口就能够处理这个问题。Java
Callable接口和Runnable接口的不同之处:
1.Callable规则的办法是call,而Runnable是run
2.call办法能够抛出异常,但是run办法不行
3.Callable对象执行后能够有返回值,运转Callable任务能够得到一个Future对象,经过Future对象能够理解任务执行状况,能够取消任务的执行,而Runnable不可有返回值

用synchronized关键字修饰同步办法。
反对运用stop(),是由于它不平安。它会解除由线程获取的一切锁定,而且假如对象处于一种不连接状态,那么其他线程能在那种状态下检查和修正它们,结果很难检查出真正的问题所在。
suspend()办法容易发作死锁。调用suspend()的时分,目的线程会停下来,但却依然持有在这之前取得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被”挂起”的线程恢复运转。对任何线程来说,假如它们想恢复目的线程,同时又试图运用任何一个锁定的资源,就会形成死锁。所以不应该运用suspend(),而应在本人的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用wait()命其进入等候状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。

未经允许不得转载:IT技术网站 » java中有几种方法实现一个线程?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载