创建线程5种方法
1、继承Thread,重写run方法,调用start启动
2、实现Runnable接口,重写run方法,调用start启动。
3、lambda表达式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class MyThread { static class MyExtend extends Thread{ @Override public void run() { System. out .println( "Thread" ); } } static class MyRun implements Runnable{ @Override public void run() { System. out .println( "Thread" ); } } public static void main(String[] args) { new MyExtend().start(); new Thread( new MyRun()).start(); new Thread(()->{ System. out .println( "Thread" ); }).start(); } } |
4、对于继承Thread和实现Runnable哪种更好?
实现更好,java是单继承多实现的
5、线程池创建线程
ExecutorService service = Executors.newCachedThreadPool(); service.execute(()->{ System.out.println("Thread"); }); service.shutdown();
6、实现Callable接口
因为实现Runnale接口返回值是写死的void,不灵活,Callable接口返回值可以自己设定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class MyCallable implements Callable<String > { @Override public String call() throws Exception { return "success" ; } public static void main(String[] args) throws ExecutionException, InterruptedException { ExecutorService service = Executors.newCachedThreadPool(); Future<String> submit = service.submit( new MyCallable()); String s = submit. get (); System. out .println(s); service.shutdown(); } } |
作者:http://cnblogs.com/lyc-code/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权力。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异