publicclassThreadDemo{staticclassMyThreadextendsThread{@Overridepublicvoidrun(){System.out.println("这是一个线程!");}}publicstaticvoidmain(String[] args){MyThread t =newMyThread();
t.start();}}
方式二:通过匿名内部类的方式继承Thread
publicstaticvoidmain(String[] args){Thread t =newThread(){@Overridepublicvoidrun(){System.out.println("这是一个进程!");}};
t.start();}
publicclassThreadDemo{//Runnable本质上就是描述了一段要执行的任务代码是啥.staticclassMyRunnableimplementsRunnable{@Overridepublicvoidrun(){System.out.println("我是一个新线程");}}publicstaticvoidmain(String[] args){Thread t =newThread(newMyRunnable());
t.start();}}
方式四:通过匿名内部类来实现Runnable接口
publicstaticvoidmain(String[] args){Runnable runnable =newRunnable(){@Overridepublicvoidrun(){System.out.println("我是一个新线程");}};Thread t =newThread(runnable);
t.start();}
方式五:使用lambda表达式来指定线程执行的内容
publicstaticvoidmain(String[] args){Thread t =newThread(()->{System.out.println("我是一个新线程");});
t.start();}