CompletableFuture对象创建的方法说明,错误的是()
A. runAsync(Runnable runnable)以Runnable函数式接口类型为参数,并使用ForkJoinPool.commonPool()作为它的线程池执行异步代码获取CompletableFuture计算结果为空的对象
B. runAsync(Runnable runnable,Executor executor)以Runnable函数式接口类型为参数,并传入指定的线程池执行器executor来获取CompletableFuture计算结果为空的对象
C. supplyAsync(Supplier supplier)并使用指定作为它的线程池执行异步代码获取CompletableFuture计算结果非空的对象
D. supplyAsync(Supplier supplier, Executor executor)以Supplier函数式接口类型为参数,并传入指定的线程池执行器executor来获取CompletableFuture计算结果非空的对象
查看答案
Executors创建线程池的方法说明,正确的是()
A. newCachedThreadPool()创建一个可扩展线程池的执行器。
B. newFixedThreadPool( int nThreads)创建一个固定线程数量线程池的执行器
C. newSingleThreadExecutor()在特殊需求下创建一个只执行一个任务的单个线程
D. newScheduledThreadPool(int corePoolSize)创建一个定长线程池,支持定时及周期性任务执行
阅读下面程序 public class Example {public static void main(String[] args) {TicketWindow tw = new TicketWindow();new Thread(tw, "窗口1").start();new Thread(tw, "窗口2").start();} } class TicketWindow implements Runnable {private int tickets = 50;public void run() {while (true) {if (tickets > 0) {Thread th = Thread.currentThread();String th_name = th.getName();System.out.println(th_name + " 正在发售第 " + tickets-- + " 张票 ");}}} } 下列选项中,可能是程序运行结果的是()
A. 窗口1和窗口2各卖了50张票
B. 窗口1和窗口2共卖了50张票
C. 窗口1和窗口2各卖了25张票
D. 窗口1卖了50张票,窗口2卖了0张票
下列关于线程优先级的描述中,正确的是()
A. 线程的优先级需要操作系统支持,不同的操作系统对优先级的支持是不一样。
B. 线程的优先级是不能改变的。
C. 在程序中可以对线程的优先级进行重新设置。
D. 线程的优先级是在创建线程时设置的。
下面关于线程创建的说法中,错误的有()
A. 定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start()方法
B. 定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run()方法
C. 定义一个实现Runnable接口的类并实现run()方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start()方法
D. 定义一个实现Runnable接口的类并实现run()方法,创建该类对象,然后调用run()方法