Java中有几种方法可以实现一个线程??用什么关键字修饰同步方法??stop()和suspend()方法为什么不推荐使用??
1. Java中有几种方法可以实现一个线程??
两种,分别是继承thread类和实现Runnable类接口。
第一种:
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(){}
})
线程池创造多线程:
ExecutorService pool=Executors.newFixedThreadPool(3)
for(int i=0;i<10;I++){pool.execute(new Runable(){public void run(){}});
}
Executors.newCatchedThreadPool().execute(new Runable(){public void run(){}
});
Executors.newSingleThreadExecutor().execute(new Runable(){public void run(){}
});
2.用什么关键字修饰同步方法??
用 synchronized 关键字修饰同步方法。
3.stop()和suspend()方法为什么不推荐使用??
stop()方法是一种粗鲁的线程终止行为,具有不安全性。用Thread.stop()来终止线程将会释放该线程对象事先锁定好的所有监视器,如果以前受这些监视器保护的所有对象都处于不连贯状态,那么损坏的对象对其他线程可见,这有就可能导致不安全的操作。
suspend()方法具有死锁倾向。调用suspend()的时候,目标线程会停下来,如果目标线程挂起时在保护关键系统资源的监视器上保持有锁,则在目标线程开始之前,其他线程都不能访问该资源,除非被挂起的线程回复运行,对任何其他线程来说,如果想回复线程,同时又试图使用任何一个锁住的资源,就会造成死锁。
Java中有几种方法可以实现一个线程??用什么关键字修饰同步方法??stop()和suspend()方法为什么不推荐使用??相关推荐
- java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
答: 1.有两种实现方法,分别是继承Thread类与实现Runnable接口 继承扩展性不强,java总只支持单继承,如果一个类继承Thread就不能继承其他的类了. 2.用synchronized关 ...
- java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法 ? stop() 和 suspend() 方 法为何不推荐使用?
60 . java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法 ? stop() 和 suspend() 方 法为何不推荐使用? 答: 有两种实现方法,分别是继承 Thread类与实现Ru ...
- 请回答一下Java中有几种线程池及实现过程?
请回答一下Java中有几种线程池及实现过程? 1.newFixedThreadPool创建一个指定工作线程数量的线程池.每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将 ...
- java基本数据类型_Java面试题Java中有几种基本数据类型?它们分别占多大字节?...
点击上方"千锋Java学院",选择"置顶公众号" 每天一道面试模拟真题及解析 课前导读 ●回复"每日一练"获取以前的题目,持续更新! ●我希 ...
- 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法 参考文章: (1)在同一个类中,一个方法调用另外一个有注解(比如@Async, ...
- 4、变量和方法被static和final两个关键字修饰,为什么这么做?
常常看到变量和方法被static和final两个关键字修饰,为什么这么做? 这么做有两个目的: 1.变量和方法于类无关,可以直接使用,使用比较方便: 2.强调变量内存地址的不可变性,方法不可继承覆写, ...
- command对象提供的3个execute方法是_并发面试题:java中有几种方法可以实现一个线程?...
创建并启动线程的6种方式 继承Thread类创建线程 实现Runnable接口创建线程 使用Callable和FutureTask创建线程 使用线程池,例如用Executor框架 Spring实现多线 ...
- java中有几种内部类,Java中的四种内部类
四种内部类 在Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的 内部类一般来说包括这四种:静态内部类.匿名内部类.成员内部类和局部内部类,下面我们一一介绍 ...
- Java中有几种类型的流?以及常见的实现类都有哪些?
首先应该从两个角度来看: 从输入输出方面来讲: Java中有输入流和输出流 从流的编码方式上来讲: Java中有字节流和字符流 下面主要讲解从编码方式来看java几种常见的类型的流. ...
最新文章
- Scrum指南新版发布,再添新概念—Product Goal
- Linux_Shell_ Map 的使用和遍历
- 构建dubbo分布式平台-maven构建根项目
- 离散数学实验题目-图
- 深入理解Windows消息循环
- 模拟耗时操作_在集成测试中模拟耗时的动作
- 成功领导者的20个好习惯
- Andrew ng清华报告听后感
- ios弧形进度条_iOS实现一个颜色渐变的弧形进度条
- 在mysql中怎么存储表情符号,如何在MySQL数据库中存储表情符号字符
- C语言Float的存储大小
- 微信支付API v3接口使用应用篇
- QMediaplayer详解以及简易音乐播放实现
- vue H5页面制作微信公众号前期准备
- TI单芯片毫米波雷达xWR1642开箱例程
- CF71A Way Too Long Words(string简单模拟)
- 计算机专业毕业设计答辩稿
- CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘. To initia
- AP考试取消,AP课程学生如何申请英国大学?
- 华为诺亚方舟实验室(智能工业视觉组)招聘实习生