这篇文章将为大家详细讲解有关多线程在java中的使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
第一种方式,定义Thread类的子类:
//第一种方法 public class MyThread extends Thread { @Override public void run() { String name = getName(); // 获取线程名称 System.out.println(name); // 输出 Thread-0 } }
//第二种方法 public class MyThread extends Thread { @Override public void run() { Thread t = Thread.currentThread(); // 获取当前线程 System.out.println(t); // 下面调用后输出 Thread[Thread-0,5,main] System.out.println(t.getName());// 输出 Thread-0 } }
开启多线程:
public class demo1Test { public static void main(String[] args) { MyThread mt = new MyThread(); mt.start();// 会运行MyThread的run()方法 } }
第二种方式,实现Runnable接口:
实现步骤:
1.创建一个Runnable 接口的实现类
2.在实现类中重写Runnable接口的run方法,设置线程任务
3.创建一个Runnable接口的实现类对象
4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象
5.调用Thread类中的start方法,开启新的线程执行run方法
public class Runnableimpl implements Runnable {//1.创建一个Runnable 接口的实现类 @Override public void run() { for (int i = 1; i <= 20; i++) {// 2.在实现类中重写Runnable接口的run方法,设置线程任务 System.out.println(Thread.currentThread().getName() + i); } } }
public class demo2Test { public static void main(String[] args) { Runnable run = new Runnableimpl();//3.创建一个Runnable接口的实现类对象 Thread t = new Thread(run); //4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象 t.start();//5.调用Thread类中的start方法,开启新的线程执行run方法 for (int i = 1; i <= 20; i++) { System.out.println(Thread.currentThread().getName() + i); } // Thread-0和main开始多线程抢夺cpu } }
实现Runnable接口创建多线程的好处:
1.避免了单继承的局限性:
一个类只能继承一个类,类继承了Thread后就不能继承其他的类
实现了Runnable接口,还可以继承其他的类,实现其他接口。
2.增强了程序的扩展性,降低了程序的耦合性
实现Runnable接口的方式,把设置线程任务和开启线程任务进行分离
实现类中,重写run()方法,用来设置线程任务。
创建Thread类对象,调用start()方法,用来开启新线程
sleep( )方法,使方法睡眠
public class sleepTest { public static void main(String[] args) { for (int i = 0; i < 20; i++) { //使用Thread类的sleep方法,让方法睡眠1秒钟 try { Thread.sleep(1000);//传入的是毫秒值 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(i); } } }
关于多线程在java中的使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。