创建线程有几种不同的方式?你喜欢哪一种?为什么?
有4种方式可以用来创建线程:继承Thread类实现Runnable接口应用程序可以使用Executor框架来创建线程池实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。同时,线程池也是非常高效的,很容易实现和使用。还有一种方式是实现Callable接口
老师讲得真好,通俗易懂
收益匪浅啊
4444444
1,继承Thread类,重写run方法;2,实现Runnable接口,重写run方法,3,使用Executor框架创建线程池。Executor框架是juc里提供的线程池的实现。我更喜欢用第二种, 因为实现接口还可以继承类,避免了单继承带来的局限性; Runnable还可以用于“资源的共享”。即,多个线程都是基于某一个Runnable对象建立的,它们会共享Runnable对象上的资源
我来给大家举个例子第一种:继承Thread类第二种:实现Runnable接口第三种:实现Callable接口第四种:Executor框架来创建线程池
1,继承Thread类,重写run方法;2,实现Runnable接口,重写run方法,但是比继承Thread类好用,实现接口还可以继承类,避免了单继承带来的局限性;3,实现callable接口,重写call方法,有返回值。4,使用实现了Executor接口的ThreadPoolExecutor来创建线程池。
列举一款你常用的移动APP,并分析他的最核心功能、满足的需求、超预期的功能以及竞争优势和发展趋势
叉树前序遍历的递归和非递归实现?
什么是 Cookie?它的作用是什么?
用一条线(可以是折线)分割多边形为面积相等的两部分
老师讲得真好,通俗易懂
收益匪浅啊
4444444
1,继承Thread类,重写run方法;
2,实现Runnable接口,重写run方法,
3,使用Executor框架创建线程池。Executor框架是juc里提供的线程池的实现。
我更喜欢用第二种, 因为实现接口还可以继承类,避免了单继承带来的局限性; Runnable还可以用于“资源的共享”。即,多个线程都是基于某一个Runnable对象建立的,它们会共享Runnable对象上的资源
我来给大家举个例子
第一种:继承Thread类
第二种:实现Runnable接口
第三种:实现Callable接口
第四种:Executor框架来创建线程池
1,继承Thread类,重写run方法;
2,实现Runnable接口,重写run方法,但是比继承Thread类好用,实现接口还可以继承类,避免了单继承带来的局限性;
3,实现callable接口,重写call方法,有返回值。
4,使用实现了Executor接口的ThreadPoolExecutor来创建线程池。