在Java中创建线程的脏方法
发布时间:2020-12-15 04:23:55 所属栏目:Java 来源:网络整理
导读:我最近开始深入研究 Java中的多线程.在探索事物的过程中,我发现在Java中有两种快速而肮脏的方法可以“随时随地”创建Threads.这是一个例子: public static void main(String[] args) { System.out.println("Thread: " + Thread.currentThread().getName());
我最近开始深入研究
Java中的多线程.在探索事物的过程中,我发现在Java中有两种快速而肮脏的方法可以“随时随地”创建Threads.这是一个例子:
public static void main(String[] args) { System.out.println("Thread: " + Thread.currentThread().getName()); new Thread() { public void run() { System.out.println("Thread: " + Thread.currentThread().getName()); System.out.println("hello"); } }.start(); new Thread(new Runnable() { @Override public void run() { System.out.println("Thread: " + Thread.currentThread().getName()); System.out.println("hello"); } }).start(); } >第一个是以新的Thread()开头的那个{ 我只想问两种方法是否正确?除了实现Runnable Interface v / s扩展Thread类的差异之外还有什么区别? 解决方法
两种方式都是可以接受的(在我看来,这两种方式都不是“脏”).第一个是不那么冗长,而且我喜欢这样一个像这样的小事.如果你正在扩展Thread,那么你也可以跳过Thread.currentThread():
new Thread() { public void run() { System.out.println("Thread: " + getName()); System.out.println("hello"); } }.start(); 然而,在任何非平凡的情况下(即如果线程不仅仅是几个印刷品),通常的“favor composition over inheritance”规则适用于第二种方法. 如果您使用的是Java 8,您甚至可以利用Runnable是一个功能界面: new Thread(() -> { System.out.println("Thread: " + Thread.currentThread().getName()); System.out.println("hello"); }).start() 最后一点:这些天我很少使用线程.每当我这样做时,我倾向于最终使用ExecutorServices重写它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |