page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6256 次

3096 个回答

0 赞同

如何通过Runnable 接口创建线程?

步骤 定义Runnable接口实现类MyRunnable,并重写run()方法 创建MyRunnable实例myRunnable,以myRunnable作为target创建Thead对象,该Thread对象才是真正的线程对象 调用线程对象的start()方法 public class MyRunnable implements Runnable {     @Override     public void run() {         System.out.println(Thr...

回答于 2022-04-09 15:53

0 赞同

如何通过Callable 接口创建线程?

步骤 创建实现Callable接口的类myCallable 以myCallable为参数创建FutureTask对象 将FutureTask作为参数创建Thread对象 调用线程对象的start()方法 public class MyCallable implements Callable<Integer> {     @Override     public Integer call() {         System.out.println(Thread.currentThread().g...

回答于 2022-04-09 15:52

0 赞同

什么是 Callable 和 Future?

Callable 接口类似于 Runnable,从名字就可以看出来了,但是 Runnable 不会返回结果,并且无法抛出返回结果的异常,而 Callable 功能更强大一些,被线程执行后,可以返回值,这个返回值可以被 Future 拿到,也就是说,Future 可以拿到异步执行任务的返回值。 Future 接口表示异步任务,是一个可能还没有完成的异步任务的结...

回答于 2022-04-09 15:52

0 赞同

什么是 FutureTask?

FutureTask 表示一个异步运算的任务。FutureTask 里面可以传入一个 Callable 的具体实现类,可以对这个异步运算的任务的结果进行等待获取、判断是否已经完成、取消任务等操作。只有当运算完成的时候结果才能取回,如果运算尚未完成 get 方法将会阻塞。一个 FutureTask 对象可以对调用了 Callable 和 Runnable 的对象进行包...

回答于 2022-04-09 15:51

0 赞同

Java 中用到的线程调度算法是什么?

计算机通常只有一个 CPU,在任意时刻只能执行一条机器指令,每个线程只有获得CPU 的使用权才能执行指令。所谓多线程的并发运行,其实是指从宏观上看,各个线程轮流获得 CPU 的使用权,分别执行各自的任务。在运行池中,会有多个处于就绪状态的线程在等待 CPU,JAVA 虚拟机的一项任务就是负责线程的调度,线程调度是指按照特...

回答于 2022-04-09 15:51

0 赞同

线程的调度策略是什么?

线程调度器选择优先级最高的线程运行,但是,如果发生以下情况,就会终止线程的运行: 线程体中调用了 yield 方法让出了对 cpu 的占用权利 线程体中调用了 sleep 方法使线程进入睡眠状态 线程由于 IO 操作受到阻塞 另外一个更高优先级线程出现 在支持时间片的系统中,该线程的时间片用完

回答于 2022-04-09 15:50

0 赞同

什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )...

线程调度器是一个操作系统服务,它负责为 Runnable 状态的线程分配 CPU 时间。一旦我们创建一个线程并启动它,它的执行便依赖于线程调度器的实现。 时间分片是指将可用的 CPU 时间分配给可用的 Runnable 线程的过程。分配 CPU 时间可以基于线程优先级或者线程等待的时间。 线程调度并不受到 Java 虚拟机控制,所以由应用...

回答于 2022-04-09 15:47

0 赞同

请说出与线程同步以及线程调度相关的方法。

    wait():使一个线程处于等待(阻塞)状态,并且释放所持有的对象的锁;     sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要处理 InterruptedException 异常;     notify():唤醒一个处于等待状态的线程,当然在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由 JVM 确定...

回答于 2022-04-09 15:47

0 赞同

如何停止一个正在运行的线程?

在java中有以下3种方法可以终止正在运行的线程:     使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。     使用stop方法强行终止,但是不推荐这个方法,因为stop和suspend及resume一样都是过期作废的方法。     使用interrupt方法中断线程。

回答于 2022-04-09 15:47

0 赞同

同步和异步有何异同,在什么情况下分别使用他们?

如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有...

回答于 2022-04-08 16:00