java基础知识回顾之java Thread类--java线程实现常见的两种方式(一)
2014-08-06 09:48
555 查看
创建线程的第一种方式:
/ * 步骤:
* 1.继承Thread类
* 2. 重写Thread的run方法
* 目的:将自定义的代码存储在run方法中,运行自定义线程
* start 1.启动线程,2调用run方法
* 为什么要覆盖run方法?
* Thread类用于描述线程,该类定义了一个功能,用于存储线程要运行的代码,该存储功能就是run方法
* 也就是说Thread中的run方法,用于存储线程要运行的代码。
* 主线程要运行的方法存放在main里面,这是虚拟机定义的
* 虚拟机开启主线程,也就是运行main方法里面的代码:
*
*
*/
代码演示:
*发现运行结果每一次都不同,因为多个线程都在获取CPU的使用权,cpu执行到谁,谁就运行,明确
* 一点,cpu在某一个时刻,只能运行一个程序(多核除外),CPU在做快速的切换,达到看上去是同时运行的
* 多线程的运行行为在互相的抢夺CPU的执行权。
* 这是多线程的一个特性:随机性
总结:通过代码的测试:说明开启线程是使用start方法,虚拟机会自动调用run方法,等到抢到CUP使用权,线程从就绪状态转为运行状态,而不能直接调用run()方法,因为在main方法里面如果调用run方法,相当于jvm主线程执行了一个普通的方法。所以是不能实现多线程,只是主线程在顺序的往下执行。
/ * 步骤:
* 1.继承Thread类
* 2. 重写Thread的run方法
* 目的:将自定义的代码存储在run方法中,运行自定义线程
* start 1.启动线程,2调用run方法
* 为什么要覆盖run方法?
* Thread类用于描述线程,该类定义了一个功能,用于存储线程要运行的代码,该存储功能就是run方法
* 也就是说Thread中的run方法,用于存储线程要运行的代码。
* 主线程要运行的方法存放在main里面,这是虚拟机定义的
* 虚拟机开启主线程,也就是运行main方法里面的代码:
*
*
*/
代码演示:
*发现运行结果每一次都不同,因为多个线程都在获取CPU的使用权,cpu执行到谁,谁就运行,明确
* 一点,cpu在某一个时刻,只能运行一个程序(多核除外),CPU在做快速的切换,达到看上去是同时运行的
* 多线程的运行行为在互相的抢夺CPU的执行权。
* 这是多线程的一个特性:随机性
public class HelloThread extends Thread { private String name; public HelloThread(String name){ this.name=name; } public void run(){ for(int i=0;i<=60;i++){ System.out.println(name+"运行"+i); } } public static void main(String[]args){ HelloThread h1 = new HelloThread("A副线程");//创建一个线程 //HelloThread h2 = new HelloThread("B"); //两个线程并发的运行 h1.start();//开启线程,并执行该线程的run方法 //h1.run();//仅仅是对象调用方法,是主线程的顺序执行 for(int i=0;i<60;i++){ System.out.println("主线程执行中。。。。。。。。。。"+i); } //h2.start(); } }
总结:通过代码的测试:说明开启线程是使用start方法,虚拟机会自动调用run方法,等到抢到CUP使用权,线程从就绪状态转为运行状态,而不能直接调用run()方法,因为在main方法里面如果调用run方法,相当于jvm主线程执行了一个普通的方法。所以是不能实现多线程,只是主线程在顺序的往下执行。
相关文章推荐
- java基础知识回顾之java Thread类--java线程实现常见的两种方式实现Runnable接口(二)
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- Java_基础—多线程(匿名内部类实现线程的两种方式和设置名字的方法)
- java基础知识回顾之java Thread类学习(十二)-- 线程中断
- JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没
- Java基础回顾 : 线程的实现方式
- java基础知识回顾之java Thread类学习(四)--java多线程安全问题(锁)
- Java中继承Thread和实现Runnable这两种创建线程有何区别
- java基础知识回顾之java Thread类学习(八)--java多线程通信等待唤醒机制经典应用(生产者消费者)
- JAVA与多线程开发(线程基础、继承Thread类来定义自己的线程、实现Runnable接口来解决单继承局限性、控制多线程程并发)
- java基础知识回顾之java Thread类学习(七)--java多线程安全问题(死锁)
- JAVA 实现线程的两种方式,举例,详解
- java基础关于创建线程的两种方式
- 【Java多线程学习】Java多线程的两种实现方式:继承Thread类 & 实现Runable接口
- java基础知识回顾之java Thread类学习(八)--java.util.concurrent.locks(JDK1.5)与synchronized异同讲解
- java基础知识回顾之java Thread类学习(六)--java多线程同步函数用的锁
- Java基础知识整理(五)- 线程同步的实现方式