关于我们
技术分享
技术分享
java多线程示例
java多线程示例
2021-04-28
/* 进程:一个正在运行的程序。每一个进程都有一个执行顺序,该顺序就是执行路径,或者叫执行单元 线程:就是进程中的一个执行单元。线程控制着进程。一个进程中至少有一个线程。 多线程示例。 创建多线程有两种方法。 一种继承Thread类,并且覆盖Thread中的run方法,并且调用其start方法。 startt方法的作用是开启线程,并且调用run方法。 复写run方法的目的是:将自定义的代码存储在run方法中,让线程运行。 */ class Demo extends Thread{ public void run(){ for(int x =0; x <40;x++){ System.out.println("Demo Run...."+x); } } } class ThreadDemo{ public static void main(String[]args){ Demo d = new Demo(); //等普通调用,因为run方法仅仅是将需要多线程执行的代码进行封装。 d.run(); //开启线程,并执行该线程的run方法。如果是d.run();则仅仅是允许run方法,并没有开启多线程。 d.start(); for(int i = 0;i<40;i++){ System.out.println("helloWolrd----"+i); } //主线程,与start开启的线程并行执行。 } } /* 创建线程的第二种方法,实现runnable接口 步骤: 1.实现Runnable接口 2.覆盖Runnabel中的run方法,将需要线程运行的代码存放在run方法中 3.通过Thread类建立线程对象 4.通过Runnable接口的子类对象作为参数,传递给Thread类的构造函数 为什么要将Runnable接口的子类对象作为参数传递给Thread类。 因为自定义的Run方法所属对象是Runnable接口的子类对象,所以要让线程去指定所属对象的Run方法, 就必须明确run方法所属对象。 5.调用Thread类的start方法,开启线程,并调用Runnable接口的子类run方法 实现方式和继承方式区别。 实现方式的好处:避免了继承的局限性。 在定义线程时,一般使用实现方式 */ class Ticket implements Runnable{ private int ticket = 100; public void run(){ while(true){ if(ticket > 0){ System.out.println(Thread.currentThread().getName()+"..slae " + ticket--); } } } } class TicketDemo{ public static void main(String[]args){ Ticket t = new Ticket(); Thread t1 = new Thread(t); Thread t2 = new Thread(t); Thread t3 = new Thread(t); t1.start(); t2.start(); t3.start(); } }
- 标签:
-
网络安全
您可能感兴趣的新闻 换一批
热门文章
现在下载,可享30天免费试用