/* 进程:一个正在运行的程序。每一个进程都有一个执行顺序,该顺序就是执行路径,或者叫执行单元 线程:就是进程中的一个执行单元。线程控制着进程。一个进程中至少有一个线程。 多线程示例。 创建多线程有两种方法。 一种继承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(); } }
java多线程示例
原创
©著作权归作者所有:来自51CTO博客作者司马辽太的原创作品,如需转载,请与作者联系,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java多线程的解析
Java多线程的解析 并发 并行 锁 CAS
守护线程 线程组 多线程 锁 -
Java多线程简单示例
多线程简单控制示例。1. extends Thread.package cn.com.keke.thread.test; /** * extends Thread * @author player * */ public&n
Java 多线程 Thread Runnable player -
java多线程代码示例 java多线程简单代码
JAVA多线程代码简单实现
java多线程压缩代码 java jvm 开发语言 多线程